viberadar 0.3.171 → 0.3.173

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.
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.startProbeLoop = startProbeLoop;
4
+ function startProbeLoop(intervalSec, runFn, onReport) {
5
+ let running = false;
6
+ let timer = null;
7
+ const tick = async () => {
8
+ if (running) {
9
+ console.log(' ⏳ Previous run still in progress, skipping...');
10
+ return;
11
+ }
12
+ running = true;
13
+ try {
14
+ const report = await runFn();
15
+ await onReport(report);
16
+ }
17
+ catch (err) {
18
+ console.error(` ❌ Probe run error: ${err.message}`);
19
+ }
20
+ finally {
21
+ running = false;
22
+ }
23
+ };
24
+ const shutdown = () => {
25
+ console.log('\n🛑 Probe stopping...');
26
+ if (timer)
27
+ clearInterval(timer);
28
+ process.exit(0);
29
+ };
30
+ process.on('SIGINT', shutdown);
31
+ process.on('SIGTERM', shutdown);
32
+ console.log(` Interval: every ${intervalSec}s`);
33
+ console.log(' Press Ctrl+C to stop\n');
34
+ tick();
35
+ timer = setInterval(tick, intervalSec * 1000);
36
+ }
37
+ //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/probe/scheduler.ts"],"names":[],"mappings":";;AAKA,wCAsCC;AAtCD,SAAgB,cAAc,CAC5B,WAAmB,EACnB,KAAY,EACZ,QAAkB;IAElB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,KAAK,GAA0C,IAAI,CAAC;IAExD,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,OAAO,GAAG,IAAI,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAC;YAC7B,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,yBAAyB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;gBAAS,CAAC;YACT,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,IAAI,KAAK;YAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhC,OAAO,CAAC,GAAG,CAAC,sBAAsB,WAAW,GAAG,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAEzC,IAAI,EAAE,CAAC;IACP,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,51 @@
1
+ export interface ProbeConfig {
2
+ target: string;
3
+ interval: number;
4
+ timeout: number;
5
+ notify?: ProbeNotifyConfig;
6
+ checks: ProbeCheck[];
7
+ }
8
+ export interface ProbeNotifyConfig {
9
+ telegram?: {
10
+ botToken: string;
11
+ chatId: string;
12
+ };
13
+ }
14
+ export interface ProbeCheck {
15
+ name: string;
16
+ steps: ProbeStep[];
17
+ }
18
+ export type ProbeStep = {
19
+ goto: string;
20
+ } | {
21
+ fill: {
22
+ selector: string;
23
+ value: string;
24
+ };
25
+ } | {
26
+ click: string;
27
+ } | {
28
+ wait: number;
29
+ } | {
30
+ 'expect.visible': string;
31
+ } | {
32
+ 'expect.text': {
33
+ selector: string;
34
+ contains: string;
35
+ };
36
+ };
37
+ export interface ProbeResult {
38
+ check: string;
39
+ status: 'passed' | 'failed';
40
+ durationMs: number;
41
+ error?: string;
42
+ screenshotPath?: string;
43
+ }
44
+ export interface ProbeRunReport {
45
+ target: string;
46
+ timestamp: string;
47
+ results: ProbeResult[];
48
+ passed: number;
49
+ failed: number;
50
+ }
51
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/probe/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAED,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC7C;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,aAAa,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/probe/types.ts"],"names":[],"mappings":""}
@@ -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,CA2oF1G"}
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"}
@@ -3544,70 +3544,6 @@ function startServer({ data: initialData, port, projectRoot }) {
3544
3544
  });
3545
3545
  return;
3546
3546
  }
3547
- if (url === '/api/obs-build-prompt' && req.method === 'POST') {
3548
- let body = '';
3549
- req.on('data', (d) => { body += d; });
3550
- req.on('end', () => {
3551
- try {
3552
- const { task, meta } = JSON.parse(body);
3553
- const obs = currentData.observability;
3554
- if (!obs) {
3555
- res.writeHead(400, jsonH);
3556
- res.end(JSON.stringify({ error: 'No observability data' }));
3557
- return;
3558
- }
3559
- let prompt = null;
3560
- if (task === 'obs-suppress-pattern') {
3561
- prompt = buildObsSuppressPatternPrompt(meta.pattern, meta.recommendation || 'suppress', obs.catalog);
3562
- }
3563
- else if (task === 'obs-fix-module') {
3564
- const item = obs.catalog.find((c) => c.modulePath === meta.modulePath);
3565
- if (!item) {
3566
- res.writeHead(404, jsonH);
3567
- res.end(JSON.stringify({ error: 'Module not found' }));
3568
- return;
3569
- }
3570
- prompt = buildObsFixModulePrompt(meta.modulePath, item);
3571
- }
3572
- else if (task === 'obs-add-critical-logs') {
3573
- const v2Item = (obs.missingCriticalLogsV2 || []).find((m) => m.modulePath === meta.modulePath);
3574
- prompt = v2Item
3575
- ? buildObsAddCriticalLogsPromptV2(v2Item, obs.catalog)
3576
- : buildObsAddCriticalLogsPrompt(meta.modulePath, obs.catalog);
3577
- }
3578
- else if (task === 'obs-enrich-field') {
3579
- prompt = buildObsEnrichFieldPrompt(meta.fieldName, obs.catalog);
3580
- }
3581
- else if (task === 'obs-batch-recommendation') {
3582
- prompt = buildObsBatchRecommendationPrompt(meta.recommendationType, obs.catalog);
3583
- }
3584
- else if (task === 'obs-fix-selected') {
3585
- const { missingLogIndices, catalogPaths, fieldName, recommendationType } = meta;
3586
- if (Array.isArray(missingLogIndices) && missingLogIndices.length > 0) {
3587
- const v2 = obs.missingCriticalLogsV2 || [];
3588
- const items = missingLogIndices.map((i) => v2[i]).filter(Boolean);
3589
- prompt = items.length > 0 ? buildObsBatchAddCriticalLogsPrompt(items, obs.catalog) : null;
3590
- }
3591
- else if (Array.isArray(catalogPaths) && catalogPaths.length > 0) {
3592
- const selected = obs.catalog.filter((c) => catalogPaths.includes(c.modulePath));
3593
- prompt = buildObsFixSelectedPrompt(selected, meta);
3594
- }
3595
- }
3596
- if (!prompt) {
3597
- res.writeHead(400, jsonH);
3598
- res.end(JSON.stringify({ error: 'Could not build prompt for this task' }));
3599
- return;
3600
- }
3601
- res.writeHead(200, jsonH);
3602
- res.end(JSON.stringify({ prompt }));
3603
- }
3604
- catch (e) {
3605
- res.writeHead(400, jsonH);
3606
- res.end(JSON.stringify({ error: e.message }));
3607
- }
3608
- });
3609
- return;
3610
- }
3611
3547
  if (url === '/api/agent-whoami' && req.method === 'GET') {
3612
3548
  const cmd = WIN ? 'claude.cmd auth status' : 'claude auth status';
3613
3549
  let out = '';