neuron-inspector 0.8.1 → 1.0.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 +345 -42
- package/dist/automations/executor.d.ts +21 -0
- package/dist/automations/executor.js +835 -0
- package/dist/automations/executor.js.map +1 -0
- package/dist/automations/index.d.ts +7 -0
- package/dist/automations/index.js +21 -0
- package/dist/automations/index.js.map +1 -0
- package/dist/automations/store.d.ts +15 -0
- package/dist/automations/store.js +193 -0
- package/dist/automations/store.js.map +1 -0
- package/dist/automations/tools.d.ts +14 -0
- package/dist/automations/tools.js +735 -0
- package/dist/automations/tools.js.map +1 -0
- package/dist/automations/types.d.ts +211 -0
- package/dist/automations/types.js +4 -0
- package/dist/automations/types.js.map +1 -0
- package/dist/business-tools.d.ts +17 -0
- package/dist/business-tools.js +3065 -0
- package/dist/business-tools.js.map +1 -0
- package/dist/collections/resolver.js +2 -2
- package/dist/collections/resolver.js.map +1 -1
- package/dist/collections/store.js +2 -2
- package/dist/collections/store.js.map +1 -1
- package/dist/killswitch.js +2 -2
- package/dist/killswitch.js.map +1 -1
- package/dist/monitor.d.ts +36 -2
- package/dist/monitor.js +213 -38
- package/dist/monitor.js.map +1 -1
- package/dist/paths.d.ts +16 -0
- package/dist/paths.js +39 -0
- package/dist/paths.js.map +1 -0
- package/dist/recipe-tools.js +28 -3
- package/dist/recipe-tools.js.map +1 -1
- package/dist/recipes.d.ts +2 -0
- package/dist/recipes.js +34 -5
- package/dist/recipes.js.map +1 -1
- package/dist/scheduler.js +4 -8
- package/dist/scheduler.js.map +1 -1
- package/dist/server.js +55 -17
- package/dist/server.js.map +1 -1
- package/dist/session-state.js +2 -2
- package/dist/session-state.js.map +1 -1
- package/dist/tools.js +28 -0
- package/dist/tools.js.map +1 -1
- package/package.json +2 -2
- package/recipes/linkedin-job-scraper/agent.md +144 -0
- package/recipes/linkedin-job-scraper/learnings.md +3 -0
- package/recipes/linkedin-job-scraper/recipe.yaml +71 -0
- package/recipes/sheets-data-entry/agent.md +166 -0
- package/recipes/sheets-data-entry/learnings.md +3 -0
- package/recipes/sheets-data-entry/recipe.yaml +78 -0
- package/recipes/x-job-scraper/agent.md +156 -0
- package/recipes/x-job-scraper/learnings.md +3 -0
- package/recipes/x-job-scraper/recipe.yaml +72 -0
- package/dist/__tests__/correlation.test.d.ts +0 -1
- package/dist/__tests__/correlation.test.js +0 -53
- package/dist/__tests__/correlation.test.js.map +0 -1
- package/dist/__tests__/monitor.test.d.ts +0 -1
- package/dist/__tests__/monitor.test.js +0 -286
- package/dist/__tests__/monitor.test.js.map +0 -1
- package/dist/__tests__/recipes.test.d.ts +0 -1
- package/dist/__tests__/recipes.test.js +0 -415
- package/dist/__tests__/recipes.test.js.map +0 -1
- package/dist/__tests__/scheduler.test.d.ts +0 -1
- package/dist/__tests__/scheduler.test.js +0 -316
- package/dist/__tests__/scheduler.test.js.map +0 -1
- package/dist/__tests__/session-state.test.d.ts +0 -1
- package/dist/__tests__/session-state.test.js +0 -335
- package/dist/__tests__/session-state.test.js.map +0 -1
package/dist/monitor.js
CHANGED
|
@@ -1,51 +1,44 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
2
|
import * as path from "node:path";
|
|
3
|
-
import * as os from "node:os";
|
|
4
3
|
import YAML from "yaml";
|
|
5
|
-
|
|
6
|
-
const MONITORS_FILE = path.join(NEURON_DIR, "monitors.yaml");
|
|
7
|
-
const ALERTS_FILE = path.join(NEURON_DIR, "monitor-alerts.yaml");
|
|
4
|
+
import { NEURON_DIR, ensureNeuronDir } from "./paths.js";
|
|
8
5
|
const MAX_ALERTS = 100;
|
|
9
6
|
const activeIntervals = new Map();
|
|
10
|
-
function ensureNeuronDir() {
|
|
11
|
-
if (!fs.existsSync(NEURON_DIR)) {
|
|
12
|
-
fs.mkdirSync(NEURON_DIR, { recursive: true });
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
7
|
function monitorsPath() {
|
|
16
|
-
return
|
|
8
|
+
return path.join(NEURON_DIR, "monitors.yaml");
|
|
17
9
|
}
|
|
18
10
|
function alertsPath() {
|
|
19
|
-
return
|
|
11
|
+
return path.join(NEURON_DIR, "monitor-alerts.yaml");
|
|
20
12
|
}
|
|
21
13
|
function loadMonitors() {
|
|
22
14
|
ensureNeuronDir();
|
|
23
|
-
if (!fs.existsSync(
|
|
15
|
+
if (!fs.existsSync(monitorsPath())) {
|
|
24
16
|
return [];
|
|
25
17
|
}
|
|
26
|
-
const content = fs.readFileSync(
|
|
18
|
+
const content = fs.readFileSync(monitorsPath(), "utf-8");
|
|
27
19
|
const store = YAML.parse(content);
|
|
28
20
|
return store?.monitors || [];
|
|
29
21
|
}
|
|
30
22
|
function saveMonitors(monitors) {
|
|
31
23
|
ensureNeuronDir();
|
|
32
24
|
const store = { monitors };
|
|
33
|
-
fs.writeFileSync(
|
|
25
|
+
fs.writeFileSync(monitorsPath(), YAML.stringify(store), "utf-8");
|
|
34
26
|
}
|
|
35
27
|
function loadAlerts() {
|
|
36
28
|
ensureNeuronDir();
|
|
37
|
-
if (!fs.existsSync(
|
|
29
|
+
if (!fs.existsSync(alertsPath())) {
|
|
38
30
|
return [];
|
|
39
31
|
}
|
|
40
|
-
const content = fs.readFileSync(
|
|
32
|
+
const content = fs.readFileSync(alertsPath(), "utf-8");
|
|
41
33
|
const store = YAML.parse(content);
|
|
42
|
-
|
|
34
|
+
const alerts = store?.alerts || [];
|
|
35
|
+
return alerts.length > MAX_ALERTS ? alerts.slice(-MAX_ALERTS) : alerts;
|
|
43
36
|
}
|
|
44
37
|
function saveAlerts(alerts) {
|
|
45
38
|
ensureNeuronDir();
|
|
46
39
|
const trimmed = alerts.slice(-MAX_ALERTS);
|
|
47
40
|
const store = { alerts: trimmed };
|
|
48
|
-
fs.writeFileSync(
|
|
41
|
+
fs.writeFileSync(alertsPath(), YAML.stringify(store), "utf-8");
|
|
49
42
|
}
|
|
50
43
|
function addAlert(alert) {
|
|
51
44
|
const alerts = loadAlerts();
|
|
@@ -55,23 +48,123 @@ function addAlert(alert) {
|
|
|
55
48
|
function generateId() {
|
|
56
49
|
return `mon_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
|
|
57
50
|
}
|
|
51
|
+
export async function executeMonitorActions(actions, ctx, tabId, triggerData) {
|
|
52
|
+
const results = [];
|
|
53
|
+
for (const action of actions) {
|
|
54
|
+
const start = Date.now();
|
|
55
|
+
try {
|
|
56
|
+
let result;
|
|
57
|
+
switch (action.type) {
|
|
58
|
+
case "click": {
|
|
59
|
+
const args = { tabId };
|
|
60
|
+
if (action.config.selector)
|
|
61
|
+
args.selectors = [action.config.selector];
|
|
62
|
+
if (action.config.text)
|
|
63
|
+
args.texts = [action.config.text];
|
|
64
|
+
result = await ctx.pending.call(ctx.ws, "clickElement", args, 15_000);
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
case "type": {
|
|
68
|
+
const args = {
|
|
69
|
+
tabId,
|
|
70
|
+
selectors: [action.config.selector],
|
|
71
|
+
value: action.config.value,
|
|
72
|
+
};
|
|
73
|
+
result = await ctx.pending.call(ctx.ws, "typeText", args, 15_000);
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
case "navigate": {
|
|
77
|
+
result = await ctx.pending.call(ctx.ws, "navigateTo", { tabId, url: action.config.url }, 30_000);
|
|
78
|
+
// Wait for load
|
|
79
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case "scroll": {
|
|
83
|
+
const args = {
|
|
84
|
+
tabId,
|
|
85
|
+
deltaY: action.config.pixels || 600,
|
|
86
|
+
smooth: true,
|
|
87
|
+
};
|
|
88
|
+
result = await ctx.pending.call(ctx.ws, "scrollPage", args, 10_000);
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
case "evaluate": {
|
|
92
|
+
result = await ctx.pending.call(ctx.ws, "evaluateJS", {
|
|
93
|
+
tabId,
|
|
94
|
+
expression: action.config.expression,
|
|
95
|
+
}, 15_000);
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
case "screenshot": {
|
|
99
|
+
result = await ctx.pending.call(ctx.ws, "takeScreenshot", { tabId }, 15_000);
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
case "extract": {
|
|
103
|
+
const args = { tabId };
|
|
104
|
+
if (action.config.selector)
|
|
105
|
+
args.selector = action.config.selector;
|
|
106
|
+
result = await ctx.pending.call(ctx.ws, "extractData", args, 15_000);
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
case "webhook": {
|
|
110
|
+
const url = action.config.url;
|
|
111
|
+
const method = action.config.method || "POST";
|
|
112
|
+
const customBody = action.config.body;
|
|
113
|
+
const customHeaders = action.config.headers;
|
|
114
|
+
const headers = {
|
|
115
|
+
"Content-Type": "application/json",
|
|
116
|
+
...customHeaders,
|
|
117
|
+
};
|
|
118
|
+
const body = customBody || JSON.stringify(triggerData);
|
|
119
|
+
const res = await fetch(url, { method, headers, body });
|
|
120
|
+
result = { status: res.status, statusText: res.statusText };
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
default:
|
|
124
|
+
throw new Error(`Unknown action type: ${action.type}`);
|
|
125
|
+
}
|
|
126
|
+
results.push({
|
|
127
|
+
action_id: action.id,
|
|
128
|
+
type: action.type,
|
|
129
|
+
status: "success",
|
|
130
|
+
duration_ms: Date.now() - start,
|
|
131
|
+
result,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
results.push({
|
|
136
|
+
action_id: action.id,
|
|
137
|
+
type: action.type,
|
|
138
|
+
status: "failed",
|
|
139
|
+
duration_ms: Date.now() - start,
|
|
140
|
+
error: err.message,
|
|
141
|
+
});
|
|
142
|
+
if (action.on_error !== "continue") {
|
|
143
|
+
break; // stop chain
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return results;
|
|
148
|
+
}
|
|
58
149
|
async function checkMonitor(monitor, checkFn) {
|
|
59
150
|
try {
|
|
60
151
|
const result = await checkFn(monitor.url, monitor.condition.selector);
|
|
152
|
+
const tabId = result.tabId;
|
|
61
153
|
const { condition } = monitor;
|
|
62
154
|
switch (condition.type) {
|
|
63
155
|
case "content_change": {
|
|
64
156
|
if (!condition.baseline) {
|
|
65
|
-
return { triggered: false, currentValue: result.text };
|
|
157
|
+
return { triggered: false, currentValue: result.text, tabId };
|
|
66
158
|
}
|
|
67
159
|
if (result.text !== condition.baseline) {
|
|
68
160
|
return {
|
|
69
161
|
triggered: true,
|
|
70
162
|
details: "Content changed",
|
|
71
163
|
currentValue: result.text,
|
|
164
|
+
tabId,
|
|
72
165
|
};
|
|
73
166
|
}
|
|
74
|
-
return { triggered: false };
|
|
167
|
+
return { triggered: false, tabId };
|
|
75
168
|
}
|
|
76
169
|
case "text_appears": {
|
|
77
170
|
if (!condition.text) {
|
|
@@ -82,25 +175,27 @@ async function checkMonitor(monitor, checkFn) {
|
|
|
82
175
|
triggered: true,
|
|
83
176
|
details: `Text "${condition.text}" appeared on page`,
|
|
84
177
|
currentValue: result.text,
|
|
178
|
+
tabId,
|
|
85
179
|
};
|
|
86
180
|
}
|
|
87
|
-
return { triggered: false };
|
|
181
|
+
return { triggered: false, tabId };
|
|
88
182
|
}
|
|
89
183
|
case "text_disappears": {
|
|
90
184
|
if (!condition.text) {
|
|
91
185
|
throw new Error("text_disappears condition requires 'text' parameter");
|
|
92
186
|
}
|
|
93
187
|
if (!condition.baseline) {
|
|
94
|
-
return { triggered: false, currentValue: result.text };
|
|
188
|
+
return { triggered: false, currentValue: result.text, tabId };
|
|
95
189
|
}
|
|
96
190
|
if (condition.baseline.includes(condition.text) && !result.text.includes(condition.text)) {
|
|
97
191
|
return {
|
|
98
192
|
triggered: true,
|
|
99
193
|
details: `Text "${condition.text}" disappeared from page`,
|
|
100
194
|
currentValue: result.text,
|
|
195
|
+
tabId,
|
|
101
196
|
};
|
|
102
197
|
}
|
|
103
|
-
return { triggered: false };
|
|
198
|
+
return { triggered: false, tabId };
|
|
104
199
|
}
|
|
105
200
|
case "price_below": {
|
|
106
201
|
if (condition.threshold === undefined) {
|
|
@@ -114,14 +209,15 @@ async function checkMonitor(monitor, checkFn) {
|
|
|
114
209
|
triggered: true,
|
|
115
210
|
details: `Price ${price} is below threshold ${condition.threshold}`,
|
|
116
211
|
currentValue: price.toString(),
|
|
212
|
+
tabId,
|
|
117
213
|
};
|
|
118
214
|
}
|
|
119
215
|
}
|
|
120
|
-
return { triggered: false };
|
|
216
|
+
return { triggered: false, tabId };
|
|
121
217
|
}
|
|
122
218
|
case "new_items": {
|
|
123
219
|
if (!condition.baseline) {
|
|
124
|
-
return { triggered: false, currentValue: JSON.stringify(result.items || []) };
|
|
220
|
+
return { triggered: false, currentValue: JSON.stringify(result.items || []), tabId };
|
|
125
221
|
}
|
|
126
222
|
const baselineItems = JSON.parse(condition.baseline);
|
|
127
223
|
const currentItems = result.items || [];
|
|
@@ -130,25 +226,27 @@ async function checkMonitor(monitor, checkFn) {
|
|
|
130
226
|
triggered: true,
|
|
131
227
|
details: `New items detected: ${currentItems.length - baselineItems.length} added`,
|
|
132
228
|
currentValue: JSON.stringify(currentItems),
|
|
229
|
+
tabId,
|
|
133
230
|
};
|
|
134
231
|
}
|
|
135
|
-
return { triggered: false };
|
|
232
|
+
return { triggered: false, tabId };
|
|
136
233
|
}
|
|
137
234
|
case "selector_change": {
|
|
138
235
|
if (!condition.selector) {
|
|
139
236
|
throw new Error("selector_change condition requires 'selector' parameter");
|
|
140
237
|
}
|
|
141
238
|
if (!condition.baseline) {
|
|
142
|
-
return { triggered: false, currentValue: result.text };
|
|
239
|
+
return { triggered: false, currentValue: result.text, tabId };
|
|
143
240
|
}
|
|
144
241
|
if (result.text !== condition.baseline) {
|
|
145
242
|
return {
|
|
146
243
|
triggered: true,
|
|
147
244
|
details: "Selector content changed",
|
|
148
245
|
currentValue: result.text,
|
|
246
|
+
tabId,
|
|
149
247
|
};
|
|
150
248
|
}
|
|
151
|
-
return { triggered: false };
|
|
249
|
+
return { triggered: false, tabId };
|
|
152
250
|
}
|
|
153
251
|
default:
|
|
154
252
|
throw new Error(`Unknown condition type: ${condition.type}`);
|
|
@@ -159,7 +257,7 @@ async function checkMonitor(monitor, checkFn) {
|
|
|
159
257
|
return { triggered: false };
|
|
160
258
|
}
|
|
161
259
|
}
|
|
162
|
-
async function runMonitorCheck(monitor, checkFn) {
|
|
260
|
+
async function runMonitorCheck(monitor, checkFn, actionFn, closeTabFn) {
|
|
163
261
|
const checkResult = await checkMonitor(monitor, checkFn);
|
|
164
262
|
const monitors = loadMonitors();
|
|
165
263
|
const monitorIndex = monitors.findIndex((m) => m.id === monitor.id);
|
|
@@ -182,6 +280,29 @@ async function runMonitorCheck(monitor, checkFn) {
|
|
|
182
280
|
previous_value: monitor.condition.baseline,
|
|
183
281
|
current_value: checkResult.currentValue,
|
|
184
282
|
};
|
|
283
|
+
// Execute actions if defined and a tab is available
|
|
284
|
+
if (monitor.actions?.length && actionFn && checkResult.tabId) {
|
|
285
|
+
try {
|
|
286
|
+
const actionResults = await actionFn(monitor.actions, checkResult.tabId, {
|
|
287
|
+
monitor_name: monitor.name,
|
|
288
|
+
monitor_id: monitor.id,
|
|
289
|
+
url: monitor.url,
|
|
290
|
+
condition_type: monitor.condition.type,
|
|
291
|
+
triggered_at: alert.triggered_at,
|
|
292
|
+
details: alert.details,
|
|
293
|
+
previous_value: alert.previous_value,
|
|
294
|
+
current_value: alert.current_value,
|
|
295
|
+
});
|
|
296
|
+
alert.action_results = actionResults;
|
|
297
|
+
const failed = actionResults.filter((r) => r.status === "failed");
|
|
298
|
+
if (failed.length > 0) {
|
|
299
|
+
console.error(`[MONITOR ACTIONS] ${monitor.name}: ${failed.length}/${actionResults.length} action(s) failed`);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
catch (err) {
|
|
303
|
+
console.error(`[MONITOR ACTIONS] ${monitor.name}: action execution error:`, err);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
185
306
|
addAlert(alert);
|
|
186
307
|
console.error(`[MONITOR ALERT] ${monitor.name}: ${alert.details}`);
|
|
187
308
|
if (checkResult.currentValue) {
|
|
@@ -192,8 +313,15 @@ async function runMonitorCheck(monitor, checkFn) {
|
|
|
192
313
|
monitors[monitorIndex].last_result = "no_change";
|
|
193
314
|
}
|
|
194
315
|
saveMonitors(monitors);
|
|
316
|
+
// Close the tab after actions are done (if the check opened one)
|
|
317
|
+
if (checkResult.tabId && closeTabFn) {
|
|
318
|
+
try {
|
|
319
|
+
await closeTabFn(checkResult.tabId);
|
|
320
|
+
}
|
|
321
|
+
catch { /* ok */ }
|
|
322
|
+
}
|
|
195
323
|
}
|
|
196
|
-
export function startMonitor(checkFn) {
|
|
324
|
+
export function startMonitor(checkFn, actionFn, closeTabFn) {
|
|
197
325
|
for (const interval of activeIntervals.values()) {
|
|
198
326
|
clearInterval(interval);
|
|
199
327
|
}
|
|
@@ -210,12 +338,12 @@ export function startMonitor(checkFn) {
|
|
|
210
338
|
const delay = (i + 1) * STAGGER_MS;
|
|
211
339
|
const timeout = setTimeout(() => {
|
|
212
340
|
// First check after the staggered delay
|
|
213
|
-
runMonitorCheck(monitor, checkFn).catch((err) => {
|
|
341
|
+
runMonitorCheck(monitor, checkFn, actionFn, closeTabFn).catch((err) => {
|
|
214
342
|
console.error(`Error running monitor ${monitor.id}:`, err);
|
|
215
343
|
});
|
|
216
344
|
// Then schedule the repeating interval
|
|
217
345
|
const interval = setInterval(() => {
|
|
218
|
-
runMonitorCheck(monitor, checkFn).catch((err) => {
|
|
346
|
+
runMonitorCheck(monitor, checkFn, actionFn, closeTabFn).catch((err) => {
|
|
219
347
|
console.error(`Error running monitor ${monitor.id}:`, err);
|
|
220
348
|
});
|
|
221
349
|
}, intervalMs);
|
|
@@ -229,7 +357,7 @@ export function startMonitor(checkFn) {
|
|
|
229
357
|
console.error(`[monitor] Scheduled ${enabled.length} monitor(s), staggered over ${(enabled.length * STAGGER_MS / 1000)}s`);
|
|
230
358
|
}
|
|
231
359
|
}
|
|
232
|
-
export async function handleMonitorTool(name, args, checkFn) {
|
|
360
|
+
export async function handleMonitorTool(name, args, checkFn, actionFn, closeTabFn) {
|
|
233
361
|
switch (name) {
|
|
234
362
|
case "neuron_monitor_create": {
|
|
235
363
|
const url = args.url;
|
|
@@ -237,6 +365,7 @@ export async function handleMonitorTool(name, args, checkFn) {
|
|
|
237
365
|
const checkIntervalMinutes = args.check_interval_minutes || 60;
|
|
238
366
|
const condition = args.condition;
|
|
239
367
|
const enabled = args.enabled !== undefined ? args.enabled : true;
|
|
368
|
+
const actions = args.actions;
|
|
240
369
|
if (!url || !monitorName || !condition) {
|
|
241
370
|
throw new Error("Missing required parameters: url, name, condition");
|
|
242
371
|
}
|
|
@@ -246,6 +375,7 @@ export async function handleMonitorTool(name, args, checkFn) {
|
|
|
246
375
|
name: monitorName,
|
|
247
376
|
check_interval_minutes: checkIntervalMinutes,
|
|
248
377
|
condition,
|
|
378
|
+
actions,
|
|
249
379
|
enabled,
|
|
250
380
|
created_at: new Date().toISOString(),
|
|
251
381
|
alert_count: 0,
|
|
@@ -256,7 +386,7 @@ export async function handleMonitorTool(name, args, checkFn) {
|
|
|
256
386
|
if (enabled && checkFn) {
|
|
257
387
|
const intervalMs = checkIntervalMinutes * 60 * 1000;
|
|
258
388
|
const interval = setInterval(() => {
|
|
259
|
-
runMonitorCheck(monitor, checkFn).catch((err) => {
|
|
389
|
+
runMonitorCheck(monitor, checkFn, actionFn, closeTabFn).catch((err) => {
|
|
260
390
|
console.error(`Error running monitor ${monitor.id}:`, err);
|
|
261
391
|
});
|
|
262
392
|
}, intervalMs);
|
|
@@ -329,7 +459,7 @@ export async function handleMonitorTool(name, args, checkFn) {
|
|
|
329
459
|
if (!monitor) {
|
|
330
460
|
throw new Error(`Monitor ${monitorId} not found`);
|
|
331
461
|
}
|
|
332
|
-
await runMonitorCheck(monitor, checkFn);
|
|
462
|
+
await runMonitorCheck(monitor, checkFn, actionFn, closeTabFn);
|
|
333
463
|
const updated = loadMonitors().find((m) => m.id === monitorId);
|
|
334
464
|
return {
|
|
335
465
|
monitor_id: monitorId,
|
|
@@ -342,7 +472,7 @@ export async function handleMonitorTool(name, args, checkFn) {
|
|
|
342
472
|
const results = [];
|
|
343
473
|
for (const monitor of monitors) {
|
|
344
474
|
if (monitor.enabled) {
|
|
345
|
-
await runMonitorCheck(monitor, checkFn);
|
|
475
|
+
await runMonitorCheck(monitor, checkFn, actionFn, closeTabFn);
|
|
346
476
|
const updated = loadMonitors().find((m) => m.id === monitor.id);
|
|
347
477
|
results.push({
|
|
348
478
|
monitor_id: monitor.id,
|
|
@@ -390,6 +520,9 @@ export async function handleMonitorTool(name, args, checkFn) {
|
|
|
390
520
|
const newCond = args.condition;
|
|
391
521
|
monitor.condition = { ...monitor.condition, ...newCond };
|
|
392
522
|
}
|
|
523
|
+
if (args.actions !== undefined) {
|
|
524
|
+
monitor.actions = args.actions;
|
|
525
|
+
}
|
|
393
526
|
saveMonitors(monitors);
|
|
394
527
|
// Restart interval if interval or enabled changed
|
|
395
528
|
const existingInterval = activeIntervals.get(monitorId);
|
|
@@ -401,7 +534,7 @@ export async function handleMonitorTool(name, args, checkFn) {
|
|
|
401
534
|
const intervalMs = monitor.check_interval_minutes * 60 * 1000;
|
|
402
535
|
const m = monitor;
|
|
403
536
|
const interval = setInterval(() => {
|
|
404
|
-
runMonitorCheck(m, checkFn).catch((err) => {
|
|
537
|
+
runMonitorCheck(m, checkFn, actionFn, closeTabFn).catch((err) => {
|
|
405
538
|
console.error(`Error running monitor ${m.id}:`, err);
|
|
406
539
|
});
|
|
407
540
|
}, intervalMs);
|
|
@@ -417,6 +550,7 @@ export async function handleMonitorTool(name, args, checkFn) {
|
|
|
417
550
|
enabled: monitor.enabled,
|
|
418
551
|
check_interval_minutes: monitor.check_interval_minutes,
|
|
419
552
|
condition: monitor.condition,
|
|
553
|
+
actions: monitor.actions,
|
|
420
554
|
},
|
|
421
555
|
};
|
|
422
556
|
}
|
|
@@ -443,7 +577,7 @@ export async function handleMonitorTool(name, args, checkFn) {
|
|
|
443
577
|
const intervalMs = monitors[idx].check_interval_minutes * 60 * 1000;
|
|
444
578
|
const m = monitors[idx];
|
|
445
579
|
const interval = setInterval(() => {
|
|
446
|
-
runMonitorCheck(m, checkFn).catch((err) => {
|
|
580
|
+
runMonitorCheck(m, checkFn, actionFn, closeTabFn).catch((err) => {
|
|
447
581
|
console.error(`Error running monitor ${m.id}:`, err);
|
|
448
582
|
});
|
|
449
583
|
}, intervalMs);
|
|
@@ -514,6 +648,32 @@ export const MONITOR_TOOLS = [
|
|
|
514
648
|
description: "Whether the monitor is active. Default: true",
|
|
515
649
|
default: true,
|
|
516
650
|
},
|
|
651
|
+
actions: {
|
|
652
|
+
type: "array",
|
|
653
|
+
description: "Actions to execute when the condition triggers. Each action runs in sequence; chain stops on first failure unless on_error is 'continue'.",
|
|
654
|
+
items: {
|
|
655
|
+
type: "object",
|
|
656
|
+
properties: {
|
|
657
|
+
id: { type: "string", description: "Unique action ID" },
|
|
658
|
+
type: {
|
|
659
|
+
type: "string",
|
|
660
|
+
enum: ["click", "type", "navigate", "scroll", "evaluate", "screenshot", "extract", "webhook"],
|
|
661
|
+
description: "Action type to execute",
|
|
662
|
+
},
|
|
663
|
+
config: {
|
|
664
|
+
type: "object",
|
|
665
|
+
description: "Action-specific configuration. click: {selector, text}. type: {selector, value}. navigate: {url}. scroll: {pixels}. evaluate: {expression}. screenshot: {}. extract: {selector}. webhook: {url, method}.",
|
|
666
|
+
},
|
|
667
|
+
on_error: {
|
|
668
|
+
type: "string",
|
|
669
|
+
enum: ["stop", "continue"],
|
|
670
|
+
description: "What to do if this action fails. Default: stop",
|
|
671
|
+
},
|
|
672
|
+
label: { type: "string", description: "Human-readable label for this action" },
|
|
673
|
+
},
|
|
674
|
+
required: ["id", "type", "config"],
|
|
675
|
+
},
|
|
676
|
+
},
|
|
517
677
|
},
|
|
518
678
|
required: ["url", "name", "condition"],
|
|
519
679
|
},
|
|
@@ -624,6 +784,21 @@ export const MONITOR_TOOLS = [
|
|
|
624
784
|
type: "boolean",
|
|
625
785
|
description: "Whether the monitor is active",
|
|
626
786
|
},
|
|
787
|
+
actions: {
|
|
788
|
+
type: "array",
|
|
789
|
+
description: "Replace the monitor's action chain. Same schema as neuron_monitor_create.",
|
|
790
|
+
items: {
|
|
791
|
+
type: "object",
|
|
792
|
+
properties: {
|
|
793
|
+
id: { type: "string" },
|
|
794
|
+
type: { type: "string", enum: ["click", "type", "navigate", "scroll", "evaluate", "screenshot", "extract", "webhook"] },
|
|
795
|
+
config: { type: "object" },
|
|
796
|
+
on_error: { type: "string", enum: ["stop", "continue"] },
|
|
797
|
+
label: { type: "string" },
|
|
798
|
+
},
|
|
799
|
+
required: ["id", "type", "config"],
|
|
800
|
+
},
|
|
801
|
+
},
|
|
627
802
|
},
|
|
628
803
|
required: ["monitor_id"],
|
|
629
804
|
},
|
package/dist/monitor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../src/monitor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../src/monitor.ts"],"names":[],"mappings":"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"}
|
package/dist/paths.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized data directory for the Neuron bridge.
|
|
3
|
+
*
|
|
4
|
+
* Defaults to ~/.neuron. Override with NEURON_DATA_DIR env var to isolate
|
|
5
|
+
* data per Chrome profile when running multiple bridge instances:
|
|
6
|
+
*
|
|
7
|
+
* NEURON_BRIDGE_PORT=7378 NEURON_DATA_DIR=~/.neuron/letschop npx neuron-inspector
|
|
8
|
+
*/
|
|
9
|
+
/** The root data directory for this bridge instance. */
|
|
10
|
+
export declare let NEURON_DIR: string;
|
|
11
|
+
/** Ensure NEURON_DIR exists on disk. */
|
|
12
|
+
export declare function ensureNeuronDir(): void;
|
|
13
|
+
/** Test-only: override NEURON_DIR to an isolated temp directory. */
|
|
14
|
+
export declare function _setNeuronDirForTest(dir: string): void;
|
|
15
|
+
/** Test-only: reset NEURON_DIR to the real resolved value. */
|
|
16
|
+
export declare function _resetNeuronDir(): void;
|
package/dist/paths.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized data directory for the Neuron bridge.
|
|
3
|
+
*
|
|
4
|
+
* Defaults to ~/.neuron. Override with NEURON_DATA_DIR env var to isolate
|
|
5
|
+
* data per Chrome profile when running multiple bridge instances:
|
|
6
|
+
*
|
|
7
|
+
* NEURON_BRIDGE_PORT=7378 NEURON_DATA_DIR=~/.neuron/letschop npx neuron-inspector
|
|
8
|
+
*/
|
|
9
|
+
import * as path from "node:path";
|
|
10
|
+
import * as os from "node:os";
|
|
11
|
+
import * as fs from "node:fs";
|
|
12
|
+
function resolve() {
|
|
13
|
+
const env = process.env.NEURON_DATA_DIR;
|
|
14
|
+
if (env) {
|
|
15
|
+
// Expand ~ to homedir
|
|
16
|
+
const expanded = env.startsWith("~")
|
|
17
|
+
? path.join(os.homedir(), env.slice(1))
|
|
18
|
+
: env;
|
|
19
|
+
return path.resolve(expanded);
|
|
20
|
+
}
|
|
21
|
+
return path.join(os.homedir(), ".neuron");
|
|
22
|
+
}
|
|
23
|
+
/** The root data directory for this bridge instance. */
|
|
24
|
+
export let NEURON_DIR = resolve();
|
|
25
|
+
/** Ensure NEURON_DIR exists on disk. */
|
|
26
|
+
export function ensureNeuronDir() {
|
|
27
|
+
if (!fs.existsSync(NEURON_DIR)) {
|
|
28
|
+
fs.mkdirSync(NEURON_DIR, { recursive: true });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/** Test-only: override NEURON_DIR to an isolated temp directory. */
|
|
32
|
+
export function _setNeuronDirForTest(dir) {
|
|
33
|
+
NEURON_DIR = dir;
|
|
34
|
+
}
|
|
35
|
+
/** Test-only: reset NEURON_DIR to the real resolved value. */
|
|
36
|
+
export function _resetNeuronDir() {
|
|
37
|
+
NEURON_DIR = resolve();
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,SAAS,OAAO;IACd,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACxC,IAAI,GAAG,EAAE,CAAC;QACR,sBAAsB;QACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YAClC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,GAAG,CAAC;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,wDAAwD;AACxD,MAAM,CAAC,IAAI,UAAU,GAAG,OAAO,EAAE,CAAC;AAElC,wCAAwC;AACxC,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,UAAU,GAAG,GAAG,CAAC;AACnB,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,eAAe;IAC7B,UAAU,GAAG,OAAO,EAAE,CAAC;AACzB,CAAC"}
|