@observeone/cli 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 +214 -0
- package/dist/README.md +214 -0
- package/dist/commands/ai-check.d.ts +9 -0
- package/dist/commands/ai-check.d.ts.map +1 -0
- package/dist/commands/ai-check.js +492 -0
- package/dist/commands/ai-check.js.map +1 -0
- package/dist/commands/apply.d.ts +6 -0
- package/dist/commands/apply.d.ts.map +1 -0
- package/dist/commands/apply.js +290 -0
- package/dist/commands/apply.js.map +1 -0
- package/dist/commands/check.d.ts +9 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +267 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/export.d.ts +6 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +95 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/heartbeat.d.ts +9 -0
- package/dist/commands/heartbeat.d.ts.map +1 -0
- package/dist/commands/heartbeat.js +264 -0
- package/dist/commands/heartbeat.js.map +1 -0
- package/dist/commands/list.d.ts +9 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +42 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/login.d.ts +9 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +192 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/monitor.d.ts +9 -0
- package/dist/commands/monitor.d.ts.map +1 -0
- package/dist/commands/monitor.js +292 -0
- package/dist/commands/monitor.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +125 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/api-client.interface.d.ts +76 -0
- package/dist/interfaces/api-client.interface.d.ts.map +1 -0
- package/dist/interfaces/api-client.interface.js +2 -0
- package/dist/interfaces/api-client.interface.js.map +1 -0
- package/dist/interfaces/config.interface.d.ts +26 -0
- package/dist/interfaces/config.interface.d.ts.map +1 -0
- package/dist/interfaces/config.interface.js +2 -0
- package/dist/interfaces/config.interface.js.map +1 -0
- package/dist/interfaces/output.interface.d.ts +22 -0
- package/dist/interfaces/output.interface.d.ts.map +1 -0
- package/dist/interfaces/output.interface.js +2 -0
- package/dist/interfaces/output.interface.js.map +1 -0
- package/dist/interfaces/sse-client.interface.d.ts +18 -0
- package/dist/interfaces/sse-client.interface.d.ts.map +1 -0
- package/dist/interfaces/sse-client.interface.js +6 -0
- package/dist/interfaces/sse-client.interface.js.map +1 -0
- package/dist/package.json +42 -0
- package/dist/services/api-client.service.d.ts +82 -0
- package/dist/services/api-client.service.d.ts.map +1 -0
- package/dist/services/api-client.service.js +262 -0
- package/dist/services/api-client.service.js.map +1 -0
- package/dist/services/config.service.d.ts +32 -0
- package/dist/services/config.service.d.ts.map +1 -0
- package/dist/services/config.service.js +104 -0
- package/dist/services/config.service.js.map +1 -0
- package/dist/services/output.service.d.ts +28 -0
- package/dist/services/output.service.d.ts.map +1 -0
- package/dist/services/output.service.js +258 -0
- package/dist/services/output.service.js.map +1 -0
- package/dist/services/sse-client.service.d.ts +16 -0
- package/dist/services/sse-client.service.d.ts.map +1 -0
- package/dist/services/sse-client.service.js +80 -0
- package/dist/services/sse-client.service.js.map +1 -0
- package/dist/types/index.d.ts +106 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/live-progress.d.ts +23 -0
- package/dist/utils/live-progress.d.ts.map +1 -0
- package/dist/utils/live-progress.js +116 -0
- package/dist/utils/live-progress.js.map +1 -0
- package/dist/utils/log-writer.d.ts +13 -0
- package/dist/utils/log-writer.d.ts.map +1 -0
- package/dist/utils/log-writer.js +97 -0
- package/dist/utils/log-writer.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
export interface ObserveOneConfig {
|
|
2
|
+
apiUrl: string;
|
|
3
|
+
apiKey?: string;
|
|
4
|
+
defaultOptions?: {
|
|
5
|
+
timeout?: number;
|
|
6
|
+
retries?: number;
|
|
7
|
+
verbose?: boolean;
|
|
8
|
+
pollIntervalMs?: number;
|
|
9
|
+
maxAttempts?: number;
|
|
10
|
+
};
|
|
11
|
+
project?: {
|
|
12
|
+
name?: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export interface Test {
|
|
17
|
+
id: number;
|
|
18
|
+
name: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
url: string;
|
|
21
|
+
prompt: string;
|
|
22
|
+
user_id: string;
|
|
23
|
+
created_at: string;
|
|
24
|
+
updated_at: string;
|
|
25
|
+
}
|
|
26
|
+
export interface TestExecution {
|
|
27
|
+
id: number;
|
|
28
|
+
test_id: number;
|
|
29
|
+
status: 'PENDING' | 'RUNNING' | 'SUCCESS' | 'FAILED' | 'CANCELLED';
|
|
30
|
+
started_at: string;
|
|
31
|
+
completed_at?: string;
|
|
32
|
+
error_message?: string;
|
|
33
|
+
task_id?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface TestResult {
|
|
36
|
+
status: 'SUCCESS' | 'FAILED' | 'STARTED';
|
|
37
|
+
message: string;
|
|
38
|
+
task_id?: string;
|
|
39
|
+
results?: any[];
|
|
40
|
+
screenshots?: string[];
|
|
41
|
+
duration?: number;
|
|
42
|
+
}
|
|
43
|
+
export interface UrlMonitor {
|
|
44
|
+
id: number;
|
|
45
|
+
name: string;
|
|
46
|
+
description?: string;
|
|
47
|
+
url: string;
|
|
48
|
+
timeout_ms: number;
|
|
49
|
+
is_active: boolean;
|
|
50
|
+
alert_on_failure: boolean;
|
|
51
|
+
cron_expression?: string;
|
|
52
|
+
assertions: Array<{
|
|
53
|
+
operator: string;
|
|
54
|
+
status_code: number;
|
|
55
|
+
}>;
|
|
56
|
+
created_at: string;
|
|
57
|
+
updated_at: string;
|
|
58
|
+
}
|
|
59
|
+
export interface ApiCheck {
|
|
60
|
+
id: number;
|
|
61
|
+
name: string;
|
|
62
|
+
description?: string;
|
|
63
|
+
url: string;
|
|
64
|
+
method: string;
|
|
65
|
+
headers?: Record<string, string>;
|
|
66
|
+
body?: string;
|
|
67
|
+
timeout_ms: number;
|
|
68
|
+
is_active: boolean;
|
|
69
|
+
alert_on_failure: boolean;
|
|
70
|
+
cron_expression?: string;
|
|
71
|
+
assertions?: Array<{
|
|
72
|
+
type: string;
|
|
73
|
+
path?: string;
|
|
74
|
+
operator: string;
|
|
75
|
+
value: string;
|
|
76
|
+
}>;
|
|
77
|
+
created_at: string;
|
|
78
|
+
updated_at: string;
|
|
79
|
+
}
|
|
80
|
+
export interface Heartbeat {
|
|
81
|
+
id: number;
|
|
82
|
+
name: string;
|
|
83
|
+
description?: string;
|
|
84
|
+
period: number;
|
|
85
|
+
grace_period: number;
|
|
86
|
+
ping_key: string;
|
|
87
|
+
is_active: boolean;
|
|
88
|
+
alert_on_failure: boolean;
|
|
89
|
+
last_ping_at?: string;
|
|
90
|
+
status: 'UP' | 'DOWN' | 'PENDING';
|
|
91
|
+
created_at: string;
|
|
92
|
+
updated_at: string;
|
|
93
|
+
}
|
|
94
|
+
export interface JsonEnvelope<T = any> {
|
|
95
|
+
status: 'SUCCESS' | 'ERROR';
|
|
96
|
+
data?: T;
|
|
97
|
+
error?: {
|
|
98
|
+
message: string;
|
|
99
|
+
details?: any;
|
|
100
|
+
};
|
|
101
|
+
metadata: {
|
|
102
|
+
timestamp: string;
|
|
103
|
+
version?: string;
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface ProgressOptions {
|
|
2
|
+
verbose?: boolean;
|
|
3
|
+
}
|
|
4
|
+
export declare class LiveProgressRenderer {
|
|
5
|
+
private currentStep;
|
|
6
|
+
private totalSteps;
|
|
7
|
+
private startTime;
|
|
8
|
+
private screenshotCount;
|
|
9
|
+
private spinner;
|
|
10
|
+
private verbose;
|
|
11
|
+
private testName;
|
|
12
|
+
constructor(options?: ProgressOptions);
|
|
13
|
+
start(testName: string): void;
|
|
14
|
+
updateStep(stepNumber: number, goal: string, details?: any): void;
|
|
15
|
+
addScreenshot(): void;
|
|
16
|
+
updateStatus(message: string): void;
|
|
17
|
+
complete(status: 'success' | 'failed', message?: string): void;
|
|
18
|
+
error(message: string): void;
|
|
19
|
+
private getElapsedTime;
|
|
20
|
+
private formatAction;
|
|
21
|
+
getStartTime(): number;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=live-progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-progress.d.ts","sourceRoot":"","sources":["../../src/utils/live-progress.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,QAAQ,CAAc;gBAElB,OAAO,GAAE,eAAoB;IAKzC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAO7B,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAgDjE,aAAa,IAAI,IAAI;IAOrB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAInC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAa9D,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,YAAY;IA4BpB,YAAY,IAAI,MAAM;CAGvB"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import ora from 'ora';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
export class LiveProgressRenderer {
|
|
4
|
+
currentStep = 0;
|
|
5
|
+
totalSteps = 0;
|
|
6
|
+
startTime = Date.now();
|
|
7
|
+
screenshotCount = 0;
|
|
8
|
+
spinner;
|
|
9
|
+
verbose;
|
|
10
|
+
testName = '';
|
|
11
|
+
constructor(options = {}) {
|
|
12
|
+
this.verbose = options.verbose || false;
|
|
13
|
+
this.spinner = ora();
|
|
14
|
+
}
|
|
15
|
+
start(testName) {
|
|
16
|
+
this.testName = testName;
|
|
17
|
+
console.log(chalk.bold(`\n🎯 Test: ${testName}`));
|
|
18
|
+
console.log(chalk.gray('━'.repeat(50)));
|
|
19
|
+
this.spinner.start(chalk.blue('Connecting to execution stream...'));
|
|
20
|
+
}
|
|
21
|
+
updateStep(stepNumber, goal, details) {
|
|
22
|
+
this.currentStep = stepNumber;
|
|
23
|
+
const elapsed = this.getElapsedTime();
|
|
24
|
+
if (this.verbose && details) {
|
|
25
|
+
// Verbose mode: show detailed step information
|
|
26
|
+
this.spinner.stop();
|
|
27
|
+
console.log(chalk.bold(`\nStep ${stepNumber}${this.totalSteps > 0 ? `/${this.totalSteps}` : ''}:`));
|
|
28
|
+
console.log(chalk.cyan(` Goal: ${goal}`));
|
|
29
|
+
if (details.evaluation) {
|
|
30
|
+
console.log(chalk.magenta(` Evaluation: ${details.evaluation}`));
|
|
31
|
+
}
|
|
32
|
+
if (details.actions && details.actions.length > 0) {
|
|
33
|
+
console.log(chalk.yellow(' Actions:'));
|
|
34
|
+
details.actions.forEach((action) => {
|
|
35
|
+
const actionText = this.formatAction(action);
|
|
36
|
+
if (actionText) {
|
|
37
|
+
console.log(chalk.gray(` ${actionText}`));
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
if (details.result && details.result.length > 0) {
|
|
42
|
+
console.log(chalk.green(' Results:'));
|
|
43
|
+
details.result.forEach((result) => {
|
|
44
|
+
if (result.error) {
|
|
45
|
+
console.log(chalk.red(` ✗ ${result.error}`));
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
console.log(chalk.green(` ✓ Success`));
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
this.spinner.start(chalk.blue(`⏱️ ${elapsed} | Running...`));
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
// Compact mode: single line with essential info
|
|
56
|
+
this.spinner.text = chalk.blue(`⏱️ ${elapsed} | Step ${stepNumber}${this.totalSteps > 0 ? `/${this.totalSteps}` : ''}: ${goal}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
addScreenshot() {
|
|
60
|
+
this.screenshotCount++;
|
|
61
|
+
if (!this.verbose) {
|
|
62
|
+
// Only show in compact mode footer
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
updateStatus(message) {
|
|
66
|
+
this.spinner.text = chalk.blue(message);
|
|
67
|
+
}
|
|
68
|
+
complete(status, message) {
|
|
69
|
+
const elapsed = this.getElapsedTime();
|
|
70
|
+
if (status === 'success') {
|
|
71
|
+
this.spinner.succeed(chalk.green(message || 'Test completed successfully'));
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this.spinner.fail(chalk.red(message || 'Test failed'));
|
|
75
|
+
}
|
|
76
|
+
console.log(chalk.gray(`📸 ${this.screenshotCount} screenshots captured`));
|
|
77
|
+
console.log(chalk.gray(`⏱️ Duration: ${elapsed}`));
|
|
78
|
+
}
|
|
79
|
+
error(message) {
|
|
80
|
+
this.spinner.fail(chalk.red(message));
|
|
81
|
+
}
|
|
82
|
+
getElapsedTime() {
|
|
83
|
+
const elapsed = Math.floor((Date.now() - this.startTime) / 1000);
|
|
84
|
+
const minutes = Math.floor(elapsed / 60);
|
|
85
|
+
const seconds = elapsed % 60;
|
|
86
|
+
return `${minutes}:${seconds.toString().padStart(2, '0')}`;
|
|
87
|
+
}
|
|
88
|
+
formatAction(action) {
|
|
89
|
+
if (!action)
|
|
90
|
+
return null;
|
|
91
|
+
const actionType = Object.keys(action)[0];
|
|
92
|
+
if (!actionType)
|
|
93
|
+
return null;
|
|
94
|
+
const params = action[actionType];
|
|
95
|
+
switch (actionType) {
|
|
96
|
+
case 'go_to_url':
|
|
97
|
+
return `🔗 Navigate to: ${params.url || params}`;
|
|
98
|
+
case 'click_element':
|
|
99
|
+
case 'click_element_by_index':
|
|
100
|
+
return `🖱️ Click element${params.index !== undefined ? ` #${params.index}` : ''}`;
|
|
101
|
+
case 'input_text':
|
|
102
|
+
case 'type_text':
|
|
103
|
+
return `⌨️ Type: "${params.text || params}"${params.index !== undefined ? ` into element #${params.index}` : ''}`;
|
|
104
|
+
case 'scroll':
|
|
105
|
+
return `📜 Scroll ${params.direction || 'down'}`;
|
|
106
|
+
case 'done':
|
|
107
|
+
return `✅ ${params.text || 'Task completed'}`;
|
|
108
|
+
default:
|
|
109
|
+
return `${actionType}: ${JSON.stringify(params)}`;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
getStartTime() {
|
|
113
|
+
return this.startTime;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=live-progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-progress.js","sourceRoot":"","sources":["../../src/utils/live-progress.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare class LogWriter {
|
|
2
|
+
private logPath;
|
|
3
|
+
private stream;
|
|
4
|
+
constructor(taskId: string);
|
|
5
|
+
writeStep(step: any): void;
|
|
6
|
+
writeMessage(type: string, message: any): void;
|
|
7
|
+
writeScreenshot(count: number): void;
|
|
8
|
+
writeComplete(status: string, message?: string): void;
|
|
9
|
+
private writeLine;
|
|
10
|
+
close(): void;
|
|
11
|
+
getPath(): string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=log-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-writer.d.ts","sourceRoot":"","sources":["../../src/utils/log-writer.ts"],"names":[],"mappings":"AAIA,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,MAAM;IAsB1B,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IA+C1B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAO9C,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKpC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAUrD,OAAO,CAAC,SAAS;IAIjB,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,MAAM;CAGlB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { ConfigService } from '../services/config.service.js';
|
|
4
|
+
export class LogWriter {
|
|
5
|
+
logPath;
|
|
6
|
+
stream;
|
|
7
|
+
constructor(taskId) {
|
|
8
|
+
// Create logs directory in the same location as config
|
|
9
|
+
const configService = new ConfigService();
|
|
10
|
+
const configPath = configService.getConfigPath();
|
|
11
|
+
const configDir = path.dirname(configPath);
|
|
12
|
+
const logsDir = path.join(configDir, 'logs');
|
|
13
|
+
fs.mkdirSync(logsDir, { recursive: true });
|
|
14
|
+
// Create log file with timestamp
|
|
15
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
16
|
+
this.logPath = path.join(logsDir, `execution-${taskId}-${timestamp}.log`);
|
|
17
|
+
this.stream = fs.createWriteStream(this.logPath, { flags: 'w' });
|
|
18
|
+
// Write header
|
|
19
|
+
this.writeLine('='.repeat(70));
|
|
20
|
+
this.writeLine(`ObserveOne CLI - Execution Log`);
|
|
21
|
+
this.writeLine(`Task ID: ${taskId}`);
|
|
22
|
+
this.writeLine(`Started: ${new Date().toISOString()}`);
|
|
23
|
+
this.writeLine('='.repeat(70));
|
|
24
|
+
this.writeLine('');
|
|
25
|
+
}
|
|
26
|
+
writeStep(step) {
|
|
27
|
+
const timestamp = new Date().toISOString();
|
|
28
|
+
this.writeLine(`[${timestamp}] Step ${step.step_number || 'N/A'}`);
|
|
29
|
+
this.writeLine('-'.repeat(70));
|
|
30
|
+
if (step.next_goal) {
|
|
31
|
+
this.writeLine(`Goal: ${step.next_goal}`);
|
|
32
|
+
}
|
|
33
|
+
if (step.evaluation) {
|
|
34
|
+
this.writeLine(`Evaluation: ${step.evaluation}`);
|
|
35
|
+
}
|
|
36
|
+
if (step.memory) {
|
|
37
|
+
this.writeLine(`Memory: ${step.memory}`);
|
|
38
|
+
}
|
|
39
|
+
if (step.actions && step.actions.length > 0) {
|
|
40
|
+
this.writeLine('Actions:');
|
|
41
|
+
step.actions.forEach((action, index) => {
|
|
42
|
+
const actionType = Object.keys(action)[0];
|
|
43
|
+
if (actionType) {
|
|
44
|
+
const params = action[actionType];
|
|
45
|
+
const paramStr = Object.entries(params)
|
|
46
|
+
.map(([k, v]) => `${k}=${v}`)
|
|
47
|
+
.join(', ');
|
|
48
|
+
this.writeLine(` ${index + 1}. ${actionType} (${paramStr})`);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
if (step.result && step.result.length > 0) {
|
|
53
|
+
this.writeLine('Results:');
|
|
54
|
+
step.result.forEach((result, index) => {
|
|
55
|
+
if (result.extracted_content) {
|
|
56
|
+
this.writeLine(` ${index + 1}. ${result.extracted_content}`);
|
|
57
|
+
}
|
|
58
|
+
else if (result.error) {
|
|
59
|
+
this.writeLine(` ${index + 1}. Error: ${result.error}`);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.writeLine(` ${index + 1}. Success: ${result.success}`);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
this.writeLine('');
|
|
67
|
+
}
|
|
68
|
+
writeMessage(type, message) {
|
|
69
|
+
const timestamp = new Date().toISOString();
|
|
70
|
+
this.writeLine(`[${timestamp}] ${type.toUpperCase()}`);
|
|
71
|
+
this.writeLine(JSON.stringify(message, null, 2));
|
|
72
|
+
this.writeLine('');
|
|
73
|
+
}
|
|
74
|
+
writeScreenshot(count) {
|
|
75
|
+
const timestamp = new Date().toISOString();
|
|
76
|
+
this.writeLine(`[${timestamp}] Screenshot #${count} captured`);
|
|
77
|
+
}
|
|
78
|
+
writeComplete(status, message) {
|
|
79
|
+
this.writeLine('='.repeat(70));
|
|
80
|
+
this.writeLine(`Execution completed: ${status.toUpperCase()}`);
|
|
81
|
+
if (message) {
|
|
82
|
+
this.writeLine(`Message: ${message}`);
|
|
83
|
+
}
|
|
84
|
+
this.writeLine(`Completed: ${new Date().toISOString()}`);
|
|
85
|
+
this.writeLine('='.repeat(70));
|
|
86
|
+
}
|
|
87
|
+
writeLine(text) {
|
|
88
|
+
this.stream.write(text + '\n');
|
|
89
|
+
}
|
|
90
|
+
close() {
|
|
91
|
+
this.stream.end();
|
|
92
|
+
}
|
|
93
|
+
getPath() {
|
|
94
|
+
return this.logPath;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=log-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-writer.js","sourceRoot":"","sources":["../../src/utils/log-writer.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@observeone/cli",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "ObserveOne CLI - AI-powered website monitoring and testing from the command line",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"obs": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"start": "node server.js",
|
|
12
|
+
"start:dev": "tsx src/index.ts",
|
|
13
|
+
"build": "node scripts/build.js",
|
|
14
|
+
"dev": "tsx src/index.ts",
|
|
15
|
+
"check": "tsc --noEmit",
|
|
16
|
+
"lint": "eslint \"src/**/*.ts\" \"e2e/**/*.ts\"",
|
|
17
|
+
"format": "prettier --write \"src/**/*.ts\" \"e2e/**/*.ts\"",
|
|
18
|
+
"format:check": "prettier --check \"src/**/*.ts\" \"e2e/**/*.ts\"",
|
|
19
|
+
"test": "vitest run && tsx e2e/run-tests.ts",
|
|
20
|
+
"test:unit": "vitest run",
|
|
21
|
+
"test:e2e": "tsx e2e/run-tests.ts",
|
|
22
|
+
"knip": "knip",
|
|
23
|
+
"prepublishOnly": "npm run build"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"observeone",
|
|
27
|
+
"obs",
|
|
28
|
+
"cli",
|
|
29
|
+
"monitoring",
|
|
30
|
+
"testing",
|
|
31
|
+
"automation",
|
|
32
|
+
"ai",
|
|
33
|
+
"browser-automation"
|
|
34
|
+
],
|
|
35
|
+
"author": "ObserveOne Team",
|
|
36
|
+
"license": "MIT",
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"axios": "^1.6.0",
|
|
39
|
+
"chalk": "^5.3.0",
|
|
40
|
+
"commander": "^11.1.0",
|
|
41
|
+
"conf": "^11.0.2",
|
|
42
|
+
"dotenv": "^17.2.3",
|
|
43
|
+
"inquirer": "^9.2.12",
|
|
44
|
+
"open": "^11.0.0",
|
|
45
|
+
"ora": "^8.0.1"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@types/inquirer": "^9.0.7",
|
|
49
|
+
"@types/node": "^20.0.0",
|
|
50
|
+
"@typescript-eslint/eslint-plugin": "^8.57.0",
|
|
51
|
+
"@typescript-eslint/parser": "^8.57.0",
|
|
52
|
+
"eslint": "^10.0.3",
|
|
53
|
+
"knip": "^5.86.0",
|
|
54
|
+
"prettier": "^3.8.1",
|
|
55
|
+
"tsx": "^4.0.0",
|
|
56
|
+
"typescript": "^5.0.0",
|
|
57
|
+
"vitest": "^4.0.18"
|
|
58
|
+
},
|
|
59
|
+
"engines": {
|
|
60
|
+
"node": ">=16.0.0"
|
|
61
|
+
},
|
|
62
|
+
"files": [
|
|
63
|
+
"dist",
|
|
64
|
+
"README.md"
|
|
65
|
+
]
|
|
66
|
+
}
|