viberadar 0.3.173 → 0.3.175

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/cli.js CHANGED
@@ -49,8 +49,11 @@ async function runDashboard() {
49
49
  await (0, server_1.startServer)({ data, port: PORT, projectRoot: PROJECT_ROOT });
50
50
  console.log(`\n✅ Dashboard: http://localhost:${PORT}`);
51
51
  console.log(' Press Ctrl+C to stop\n');
52
- const { default: open } = await Promise.resolve().then(() => __importStar(require('open')));
53
- await open(`http://localhost:${PORT}`);
52
+ try {
53
+ const { default: open } = await Promise.resolve().then(() => __importStar(require('open')));
54
+ await open(`http://localhost:${PORT}`);
55
+ }
56
+ catch { }
54
57
  }
55
58
  function printHelp() {
56
59
  console.log(`
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAwC;AACxC,qCAAuC;AACvC,iCAAiC;AAEjC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AACnC,MAAM,IAAI,GAAG,IAAI,CAAC;AAClB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEhC,KAAK,UAAU,YAAY;IACzB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,eAAe,YAAY,EAAE,CAAC,CAAC;IAE3C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAW,EAAC,YAAY,CAAC,CAAC;IAE7C,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;IAEvD,MAAM,IAAA,oBAAW,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;IAEnE,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAEzC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,wDAAa,MAAM,GAAC,CAAC;IAC/C,MAAM,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;CAUb,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,MAAM,IAAA,cAAO,EAAC,YAAY,CAAC,CAAC;YAC5B,MAAM;QACR,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,SAAS,GAAC,CAAC;YAC7C,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI;YACP,SAAS,EAAE,CAAC;YACZ,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;YACnD,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAwC;AACxC,qCAAuC;AACvC,iCAAiC;AAEjC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AACnC,MAAM,IAAI,GAAG,IAAI,CAAC;AAClB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEhC,KAAK,UAAU,YAAY;IACzB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,eAAe,YAAY,EAAE,CAAC,CAAC;IAE3C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAW,EAAC,YAAY,CAAC,CAAC;IAE7C,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;IAEvD,MAAM,IAAA,oBAAW,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;IAEnE,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,wDAAa,MAAM,GAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;CAUb,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,MAAM,IAAA,cAAO,EAAC,YAAY,CAAC,CAAC;YAC5B,MAAM;QACR,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,SAAS,GAAC,CAAC;YAC7C,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI;YACP,SAAS,EAAE,CAAC;YACZ,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;YACnD,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
1
  import { ProbeConfig } from './types';
2
- export declare function loadProbeConfig(configPath?: string): ProbeConfig;
2
+ export declare function loadProbeConfig(configPath?: string): ProbeConfig | null;
3
+ export declare function requireProbeConfig(configPath?: string): ProbeConfig;
3
4
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/probe/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAc,MAAM,SAAS,CAAC;AA6BlD,wBAAgB,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CA8ChE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/probe/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAc,MAAM,SAAS,CAAC;AA6BlD,wBAAgB,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CA0CvE;AAED,wBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CAYnE"}
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.loadProbeConfig = loadProbeConfig;
37
+ exports.requireProbeConfig = requireProbeConfig;
37
38
  const fs = __importStar(require("fs"));
38
39
  const path = __importStar(require("path"));
39
40
  const yaml = __importStar(require("js-yaml"));
@@ -68,9 +69,7 @@ function loadProbeConfig(configPath) {
68
69
  ? path.resolve(configPath)
69
70
  : path.join(process.cwd(), 'probe.config.yml');
70
71
  if (!fs.existsSync(resolved)) {
71
- console.error(`❌ Probe config not found: ${resolved}`);
72
- console.error(` Create probe.config.yml or use --config <path>`);
73
- process.exit(1);
72
+ return null;
74
73
  }
75
74
  let raw;
76
75
  try {
@@ -78,29 +77,40 @@ function loadProbeConfig(configPath) {
78
77
  raw = yaml.load(content);
79
78
  }
80
79
  catch (err) {
81
- console.error(`❌ Failed to parse ${resolved}: ${err.message}`);
82
- process.exit(1);
80
+ console.warn(` ⚠️ Failed to parse ${resolved}: ${err.message}`);
81
+ return null;
83
82
  }
84
83
  if (!raw || typeof raw !== 'object') {
85
- console.error(`❌ Invalid config: expected YAML object`);
86
- process.exit(1);
84
+ console.warn(` ⚠️ Invalid probe config: expected YAML object`);
85
+ return null;
87
86
  }
88
87
  if (!raw.target || typeof raw.target !== 'string') {
89
- console.error(`❌ Config: "target" is required (e.g. https://example.com)`);
90
- process.exit(1);
88
+ console.warn(` ⚠️ Probe config: "target" is required`);
89
+ return null;
91
90
  }
92
91
  if (!Array.isArray(raw.checks) || raw.checks.length === 0) {
93
- console.error(`❌ Config: "checks" must be a non-empty array`);
94
- process.exit(1);
92
+ console.warn(` ⚠️ Probe config: "checks" must be a non-empty array`);
93
+ return null;
95
94
  }
96
95
  const interpolated = interpolateDeep(raw);
97
- const config = {
96
+ return {
98
97
  target: interpolated.target.replace(/\/+$/, ''),
99
98
  interval: Number(interpolated.interval) || DEFAULT_INTERVAL,
100
99
  timeout: Number(interpolated.timeout) || DEFAULT_TIMEOUT,
101
100
  notify: interpolated.notify || undefined,
102
101
  checks: interpolated.checks,
103
102
  };
103
+ }
104
+ function requireProbeConfig(configPath) {
105
+ const resolved = configPath
106
+ ? path.resolve(configPath)
107
+ : path.join(process.cwd(), 'probe.config.yml');
108
+ const config = loadProbeConfig(configPath);
109
+ if (!config) {
110
+ console.error(`❌ Probe config not found or invalid: ${resolved}`);
111
+ console.error(` Create probe.config.yml or use --config <path>`);
112
+ process.exit(1);
113
+ }
104
114
  return config;
105
115
  }
106
116
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/probe/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/probe/config.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ function logReport(report) {
38
38
  }
39
39
  async function runProbe(argv) {
40
40
  const { watch, configPath } = parseArgs(argv);
41
- const config = (0, config_1.loadProbeConfig)(configPath);
41
+ const config = (0, config_1.requireProbeConfig)(configPath);
42
42
  const notifiers = (0, notify_1.createNotifiers)(config.notify);
43
43
  console.log(`🔭 Probe target: ${config.target}`);
44
44
  console.log(` Checks: ${config.checks.length}`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/probe/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/probe/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/probe/runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAsC,cAAc,EAAE,MAAM,SAAS,CAAC;AA8G1F,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAqBjF"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/probe/runner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAsC,cAAc,EAAE,MAAM,SAAS,CAAC;AAmH1F,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAqBjF"}
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.runProbeChecks = runProbeChecks;
37
37
  const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
+ const module_1 = require("module");
39
40
  const SCREENSHOTS_DIR = path.join(process.cwd(), '.viberadar', 'probe-screenshots');
40
41
  function ensureScreenshotsDir() {
41
42
  if (!fs.existsSync(SCREENSHOTS_DIR)) {
@@ -128,15 +129,21 @@ async function runCheck(browser, check, config) {
128
129
  }
129
130
  }
130
131
  function loadPlaywright() {
132
+ // Try from cwd first — playwright installed in the monitoring project
131
133
  try {
132
- return require('playwright');
134
+ const cwdRequire = (0, module_1.createRequire)(path.join(process.cwd(), 'package.json'));
135
+ return cwdRequire('playwright');
133
136
  }
134
- catch {
135
- console.error('❌ Playwright not installed. Run:');
136
- console.error(' npm install playwright');
137
- console.error(' npx playwright install chromium');
138
- process.exit(1);
137
+ catch { }
138
+ // Fallback: playwright installed alongside viberadar
139
+ try {
140
+ return require('playwright');
139
141
  }
142
+ catch { }
143
+ console.error('❌ Playwright not installed. Run:');
144
+ console.error(' npm install playwright');
145
+ console.error(' npx playwright install chromium');
146
+ process.exit(1);
140
147
  }
141
148
  async function runProbeChecks(config) {
142
149
  const pw = loadPlaywright();
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/probe/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/probe/runner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAO7B,OAAO,EAAE,UAAU,EAA4H,MAAM,YAAY,CAAC;AAGlK,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;CACrB;AAuhED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA4lF1G"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAO7B,OAAO,EAAE,UAAU,EAA4H,MAAM,YAAY,CAAC;AAOlK,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;CACrB;AAuhED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA+tF1G"}
@@ -46,6 +46,9 @@ const readline = __importStar(require("readline"));
46
46
  const chokidar_1 = __importDefault(require("chokidar"));
47
47
  const scanner_1 = require("../scanner");
48
48
  const docx_1 = require("../docx");
49
+ const config_1 = require("../probe/config");
50
+ const runner_1 = require("../probe/runner");
51
+ const notify_1 = require("../probe/notify");
49
52
  const DASHBOARD_HTML = fs.readFileSync(path.join(__dirname, '../ui/dashboard.html'), 'utf-8');
50
53
  // ─── Agent CLI commands ───────────────────────────────────────────────────────
51
54
  const WIN = process.platform === 'win32';
@@ -1871,6 +1874,51 @@ function startServer({ data: initialData, port, projectRoot }) {
1871
1874
  status: 'idle', startTime: 0, buckets: [], totalRequests: 0,
1872
1875
  totalErrors: 0, logs: [], script: '', config: null, summary: null,
1873
1876
  };
1877
+ let probeRunning = false;
1878
+ let probeTimer = null;
1879
+ let probeState = { status: 'idle' };
1880
+ function loadProbeNotifyConfig() {
1881
+ const p = path.join(projectRoot, '.viberadar', 'probe-notify.json');
1882
+ try {
1883
+ return JSON.parse(fs.readFileSync(p, 'utf-8'));
1884
+ }
1885
+ catch {
1886
+ return undefined;
1887
+ }
1888
+ }
1889
+ async function runProbeOnce() {
1890
+ if (probeRunning)
1891
+ return;
1892
+ probeRunning = true;
1893
+ const prevStatus = probeState.status;
1894
+ probeState.status = 'running';
1895
+ broadcast('probe-run-started', { timestamp: new Date().toISOString() });
1896
+ try {
1897
+ const config = (0, config_1.loadProbeConfig)(path.join(projectRoot, 'probe.config.yml'));
1898
+ if (!config) {
1899
+ probeState.status = prevStatus;
1900
+ return;
1901
+ }
1902
+ const notifyCfg = loadProbeNotifyConfig();
1903
+ if (notifyCfg)
1904
+ config.notify = notifyCfg;
1905
+ const report = await (0, runner_1.runProbeChecks)(config);
1906
+ probeState.lastRun = report;
1907
+ probeState.status = probeTimer ? 'scheduled' : 'idle';
1908
+ broadcast('probe-run-done', report);
1909
+ if (report.failed > 0) {
1910
+ const notifiers = (0, notify_1.createNotifiers)(notifyCfg);
1911
+ await (0, notify_1.notifyAll)(notifiers, report);
1912
+ }
1913
+ }
1914
+ catch (err) {
1915
+ probeState.status = probeTimer ? 'scheduled' : 'idle';
1916
+ broadcast('probe-run-done', { error: err.message });
1917
+ }
1918
+ finally {
1919
+ probeRunning = false;
1920
+ }
1921
+ }
1874
1922
  function parseK6Dur(s) {
1875
1923
  let m;
1876
1924
  if ((m = s.match(/^([\d.]+)µs$/)))
@@ -4803,6 +4851,102 @@ a{color:var(--blue)}
4803
4851
  });
4804
4852
  return;
4805
4853
  }
4854
+ // --- Probe API ---
4855
+ if (url === '/api/probe/status' && req.method === 'GET') {
4856
+ const config = (0, config_1.loadProbeConfig)(path.join(projectRoot, 'probe.config.yml'));
4857
+ const checks = config ? config.checks.map(c => ({ name: c.name, steps: c.steps.length })) : null;
4858
+ res.writeHead(200, jsonH);
4859
+ res.end(JSON.stringify({ ...probeState, checks, configFound: !!config }));
4860
+ return;
4861
+ }
4862
+ if (url === '/api/probe/run' && req.method === 'POST') {
4863
+ if (probeRunning) {
4864
+ res.writeHead(409, jsonH);
4865
+ res.end(JSON.stringify({ error: 'Already running' }));
4866
+ return;
4867
+ }
4868
+ res.writeHead(200, jsonH);
4869
+ res.end(JSON.stringify({ ok: true }));
4870
+ runProbeOnce();
4871
+ return;
4872
+ }
4873
+ if (url === '/api/probe/schedule/start' && req.method === 'POST') {
4874
+ let body = '';
4875
+ req.on('data', (d) => { body += d; });
4876
+ req.on('end', () => {
4877
+ let intervalSec = 600;
4878
+ try {
4879
+ const parsed = JSON.parse(body);
4880
+ if (parsed.intervalSec > 0)
4881
+ intervalSec = parsed.intervalSec;
4882
+ }
4883
+ catch { }
4884
+ if (probeTimer)
4885
+ clearInterval(probeTimer);
4886
+ probeState.status = 'scheduled';
4887
+ probeState.intervalSec = intervalSec;
4888
+ const nextRun = () => new Date(Date.now() + intervalSec * 1000).toISOString();
4889
+ probeState.nextRunAt = nextRun();
4890
+ broadcast('probe-scheduled', { status: 'scheduled', intervalSec, nextRunAt: probeState.nextRunAt });
4891
+ probeTimer = setInterval(() => {
4892
+ probeState.nextRunAt = nextRun();
4893
+ runProbeOnce();
4894
+ }, intervalSec * 1000);
4895
+ // Run immediately
4896
+ runProbeOnce();
4897
+ res.writeHead(200, jsonH);
4898
+ res.end(JSON.stringify({ ok: true, intervalSec }));
4899
+ });
4900
+ return;
4901
+ }
4902
+ if (url === '/api/probe/schedule/stop' && req.method === 'POST') {
4903
+ if (probeTimer) {
4904
+ clearInterval(probeTimer);
4905
+ probeTimer = null;
4906
+ }
4907
+ probeState.status = 'idle';
4908
+ probeState.nextRunAt = undefined;
4909
+ probeState.intervalSec = undefined;
4910
+ broadcast('probe-scheduled', { status: 'idle' });
4911
+ res.writeHead(200, jsonH);
4912
+ res.end(JSON.stringify({ ok: true }));
4913
+ return;
4914
+ }
4915
+ if (url === '/api/probe/notify-config' && req.method === 'GET') {
4916
+ const saved = loadProbeNotifyConfig();
4917
+ const masked = saved?.telegram ? {
4918
+ botToken: saved.telegram.botToken ? saved.telegram.botToken.slice(0, 8) + '••••••••' : '',
4919
+ chatId: saved.telegram.chatId || '',
4920
+ } : null;
4921
+ res.writeHead(200, jsonH);
4922
+ res.end(JSON.stringify({ telegram: masked }));
4923
+ return;
4924
+ }
4925
+ if (url === '/api/probe/notify-config' && req.method === 'POST') {
4926
+ let body = '';
4927
+ req.on('data', (d) => { body += d; });
4928
+ req.on('end', () => {
4929
+ try {
4930
+ const { botToken, chatId } = JSON.parse(body);
4931
+ if (!botToken || !chatId) {
4932
+ res.writeHead(400, jsonH);
4933
+ res.end(JSON.stringify({ error: 'botToken and chatId are required' }));
4934
+ return;
4935
+ }
4936
+ const dir = path.join(projectRoot, '.viberadar');
4937
+ if (!fs.existsSync(dir))
4938
+ fs.mkdirSync(dir, { recursive: true });
4939
+ fs.writeFileSync(path.join(dir, 'probe-notify.json'), JSON.stringify({ telegram: { botToken, chatId } }, null, 2), 'utf-8');
4940
+ res.writeHead(200, jsonH);
4941
+ res.end(JSON.stringify({ ok: true }));
4942
+ }
4943
+ catch (err) {
4944
+ res.writeHead(500, jsonH);
4945
+ res.end(JSON.stringify({ error: err.message }));
4946
+ }
4947
+ });
4948
+ return;
4949
+ }
4806
4950
  res.writeHead(404);
4807
4951
  res.end('Not found');
4808
4952
  });