vibecodingmachine-core 1.0.2 → 2025.11.2-7.1239
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/.babelrc +13 -13
- package/README.md +28 -28
- package/__tests__/applescript-manager-claude-fix.test.js +286 -286
- package/__tests__/requirement-2-auto-start-looping.test.js +69 -69
- package/__tests__/requirement-3-auto-start-looping.test.js +69 -69
- package/__tests__/requirement-4-auto-start-looping.test.js +69 -69
- package/__tests__/requirement-6-auto-start-looping.test.js +73 -73
- package/__tests__/requirement-7-status-tracking.test.js +332 -332
- package/jest.config.js +18 -18
- package/jest.setup.js +12 -12
- package/package.json +48 -48
- package/src/auth/access-denied.html +119 -119
- package/src/auth/shared-auth-storage.js +230 -230
- package/src/autonomous-mode/feature-implementer.cjs +70 -70
- package/src/autonomous-mode/feature-implementer.js +425 -425
- package/src/chat-management/chat-manager.cjs +71 -71
- package/src/chat-management/chat-manager.js +342 -342
- package/src/ide-integration/__tests__/applescript-manager-thread-closure.test.js +227 -227
- package/src/ide-integration/aider-cli-manager.cjs +850 -850
- package/src/ide-integration/applescript-manager.cjs +1088 -1088
- package/src/ide-integration/applescript-manager.js +2802 -2802
- package/src/ide-integration/applescript-utils.js +306 -306
- package/src/ide-integration/cdp-manager.cjs +221 -221
- package/src/ide-integration/cdp-manager.js +321 -321
- package/src/ide-integration/claude-code-cli-manager.cjs +301 -301
- package/src/ide-integration/cline-cli-manager.cjs +2252 -2252
- package/src/ide-integration/continue-cli-manager.js +431 -431
- package/src/ide-integration/provider-manager.cjs +354 -354
- package/src/ide-integration/quota-detector.cjs +34 -34
- package/src/ide-integration/quota-detector.js +349 -349
- package/src/ide-integration/windows-automation-manager.js +262 -262
- package/src/index.cjs +47 -43
- package/src/index.js +17 -17
- package/src/llm/direct-llm-manager.cjs +609 -609
- package/src/ui/ButtonComponents.js +247 -247
- package/src/ui/ChatInterface.js +499 -499
- package/src/ui/StateManager.js +259 -259
- package/src/utils/audit-logger.cjs +116 -116
- package/src/utils/config-helpers.cjs +94 -94
- package/src/utils/config-helpers.js +94 -94
- package/src/utils/electron-update-checker.js +113 -85
- package/src/utils/gcloud-auth.cjs +394 -394
- package/src/utils/logger.cjs +193 -193
- package/src/utils/logger.js +191 -191
- package/src/utils/repo-helpers.cjs +120 -120
- package/src/utils/repo-helpers.js +120 -120
- package/src/utils/requirement-helpers.js +432 -432
- package/src/utils/update-checker.js +227 -167
- package/src/utils/version-checker.js +169 -0
package/src/utils/logger.cjs
CHANGED
|
@@ -1,193 +1,193 @@
|
|
|
1
|
-
// @vibecodingmachine/core - Logger Utility (CommonJS)
|
|
2
|
-
// Provides consistent logging functionality across the core package
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Logger utility for consistent logging
|
|
6
|
-
* Provides structured logging with different levels and formatting
|
|
7
|
-
*/
|
|
8
|
-
class Logger {
|
|
9
|
-
constructor(options = {}) {
|
|
10
|
-
this.level = options.level || 'info';
|
|
11
|
-
this.prefix = options.prefix || 'VibeCodingMachine';
|
|
12
|
-
this.enableTimestamp = options.enableTimestamp !== false;
|
|
13
|
-
this.enableColors = options.enableColors !== false;
|
|
14
|
-
|
|
15
|
-
// Log levels in order of priority
|
|
16
|
-
this.levels = {
|
|
17
|
-
error: 0,
|
|
18
|
-
warn: 1,
|
|
19
|
-
info: 2,
|
|
20
|
-
debug: 3,
|
|
21
|
-
trace: 4
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Get current timestamp
|
|
27
|
-
* @returns {string} Formatted timestamp
|
|
28
|
-
*/
|
|
29
|
-
getTimestamp() {
|
|
30
|
-
if (!this.enableTimestamp) return '';
|
|
31
|
-
return new Date().toISOString();
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Format log message
|
|
36
|
-
* @param {string} level - Log level
|
|
37
|
-
* @param {string} message - Log message
|
|
38
|
-
* @param {Array} args - Additional arguments
|
|
39
|
-
* @returns {string} Formatted log message
|
|
40
|
-
*/
|
|
41
|
-
formatMessage(level, message, args = []) {
|
|
42
|
-
const timestamp = this.getTimestamp();
|
|
43
|
-
const timestampStr = timestamp ? `[${timestamp}] ` : '';
|
|
44
|
-
const prefixStr = this.prefix ? `[${this.prefix}] ` : '';
|
|
45
|
-
const levelStr = `[${level.toUpperCase()}] `;
|
|
46
|
-
|
|
47
|
-
let formattedMessage = `${timestampStr}${prefixStr}${levelStr}${message}`;
|
|
48
|
-
|
|
49
|
-
if (args.length > 0) {
|
|
50
|
-
formattedMessage += ' ' + args.map(arg =>
|
|
51
|
-
typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg)
|
|
52
|
-
).join(' ');
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
return formattedMessage;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Check if level should be logged
|
|
60
|
-
* @param {string} level - Log level to check
|
|
61
|
-
* @returns {boolean} Whether to log this level
|
|
62
|
-
*/
|
|
63
|
-
shouldLog(level) {
|
|
64
|
-
return this.levels[level] <= this.levels[this.level];
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Log error message
|
|
69
|
-
* @param {string} message - Error message
|
|
70
|
-
* @param {...any} args - Additional arguments
|
|
71
|
-
*/
|
|
72
|
-
error(message, ...args) {
|
|
73
|
-
if (!this.shouldLog('error')) return;
|
|
74
|
-
|
|
75
|
-
const formattedMessage = this.formatMessage('error', message, args);
|
|
76
|
-
console.error(formattedMessage);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Log warning message
|
|
81
|
-
* @param {string} message - Warning message
|
|
82
|
-
* @param {...any} args - Additional arguments
|
|
83
|
-
*/
|
|
84
|
-
warn(message, ...args) {
|
|
85
|
-
if (!this.shouldLog('warn')) return;
|
|
86
|
-
|
|
87
|
-
const formattedMessage = this.formatMessage('warn', message, args);
|
|
88
|
-
console.warn(formattedMessage);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Log info message
|
|
93
|
-
* @param {string} message - Info message
|
|
94
|
-
* @param {...any} args - Additional arguments
|
|
95
|
-
*/
|
|
96
|
-
info(message, ...args) {
|
|
97
|
-
if (!this.shouldLog('info')) return;
|
|
98
|
-
|
|
99
|
-
const formattedMessage = this.formatMessage('info', message, args);
|
|
100
|
-
console.info(formattedMessage);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Log debug message
|
|
105
|
-
* @param {string} message - Debug message
|
|
106
|
-
* @param {...any} args - Additional arguments
|
|
107
|
-
*/
|
|
108
|
-
debug(message, ...args) {
|
|
109
|
-
if (!this.shouldLog('debug')) return;
|
|
110
|
-
|
|
111
|
-
const formattedMessage = this.formatMessage('debug', message, args);
|
|
112
|
-
console.debug(formattedMessage);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Log trace message
|
|
117
|
-
* @param {string} message - Trace message
|
|
118
|
-
* @param {...any} args - Additional arguments
|
|
119
|
-
*/
|
|
120
|
-
trace(message, ...args) {
|
|
121
|
-
if (!this.shouldLog('trace')) return;
|
|
122
|
-
|
|
123
|
-
const formattedMessage = this.formatMessage('trace', message, args);
|
|
124
|
-
console.trace(formattedMessage);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Log message (alias for info)
|
|
129
|
-
* @param {string} message - Log message
|
|
130
|
-
* @param {...any} args - Additional arguments
|
|
131
|
-
*/
|
|
132
|
-
log(message, ...args) {
|
|
133
|
-
this.info(message, ...args);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Set log level
|
|
138
|
-
* @param {string} level - New log level
|
|
139
|
-
*/
|
|
140
|
-
setLevel(level) {
|
|
141
|
-
if (this.levels.hasOwnProperty(level)) {
|
|
142
|
-
this.level = level;
|
|
143
|
-
} else {
|
|
144
|
-
this.warn(`Invalid log level: ${level}. Using 'info' instead.`);
|
|
145
|
-
this.level = 'info';
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Get current log level
|
|
151
|
-
* @returns {string} Current log level
|
|
152
|
-
*/
|
|
153
|
-
getLevel() {
|
|
154
|
-
return this.level;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Create a child logger with a specific prefix
|
|
159
|
-
* @param {string} childPrefix - Prefix for the child logger
|
|
160
|
-
* @param {Object} options - Additional options
|
|
161
|
-
* @returns {Logger} Child logger instance
|
|
162
|
-
*/
|
|
163
|
-
child(childPrefix, options = {}) {
|
|
164
|
-
const fullPrefix = this.prefix ? `${this.prefix}:${childPrefix}` : childPrefix;
|
|
165
|
-
return new Logger({
|
|
166
|
-
level: this.level,
|
|
167
|
-
prefix: fullPrefix,
|
|
168
|
-
enableTimestamp: this.enableTimestamp,
|
|
169
|
-
enableColors: this.enableColors,
|
|
170
|
-
...options
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
// Create default logger instance
|
|
176
|
-
const logger = new Logger({
|
|
177
|
-
level: process.env.NODE_ENV === 'development' ? 'debug' : 'info',
|
|
178
|
-
prefix: 'VibeCodingMachine',
|
|
179
|
-
enableTimestamp: true,
|
|
180
|
-
enableColors: true
|
|
181
|
-
});
|
|
182
|
-
|
|
183
|
-
// Export console methods for backward compatibility
|
|
184
|
-
const consoleLogger = {
|
|
185
|
-
log: (...args) => logger.log(...args),
|
|
186
|
-
info: (...args) => logger.info(...args),
|
|
187
|
-
warn: (...args) => logger.warn(...args),
|
|
188
|
-
error: (...args) => logger.error(...args),
|
|
189
|
-
debug: (...args) => logger.debug(...args),
|
|
190
|
-
trace: (...args) => logger.trace(...args)
|
|
191
|
-
};
|
|
192
|
-
|
|
193
|
-
module.exports = { logger, Logger, consoleLogger };
|
|
1
|
+
// @vibecodingmachine/core - Logger Utility (CommonJS)
|
|
2
|
+
// Provides consistent logging functionality across the core package
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Logger utility for consistent logging
|
|
6
|
+
* Provides structured logging with different levels and formatting
|
|
7
|
+
*/
|
|
8
|
+
class Logger {
|
|
9
|
+
constructor(options = {}) {
|
|
10
|
+
this.level = options.level || 'info';
|
|
11
|
+
this.prefix = options.prefix || 'VibeCodingMachine';
|
|
12
|
+
this.enableTimestamp = options.enableTimestamp !== false;
|
|
13
|
+
this.enableColors = options.enableColors !== false;
|
|
14
|
+
|
|
15
|
+
// Log levels in order of priority
|
|
16
|
+
this.levels = {
|
|
17
|
+
error: 0,
|
|
18
|
+
warn: 1,
|
|
19
|
+
info: 2,
|
|
20
|
+
debug: 3,
|
|
21
|
+
trace: 4
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Get current timestamp
|
|
27
|
+
* @returns {string} Formatted timestamp
|
|
28
|
+
*/
|
|
29
|
+
getTimestamp() {
|
|
30
|
+
if (!this.enableTimestamp) return '';
|
|
31
|
+
return new Date().toISOString();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Format log message
|
|
36
|
+
* @param {string} level - Log level
|
|
37
|
+
* @param {string} message - Log message
|
|
38
|
+
* @param {Array} args - Additional arguments
|
|
39
|
+
* @returns {string} Formatted log message
|
|
40
|
+
*/
|
|
41
|
+
formatMessage(level, message, args = []) {
|
|
42
|
+
const timestamp = this.getTimestamp();
|
|
43
|
+
const timestampStr = timestamp ? `[${timestamp}] ` : '';
|
|
44
|
+
const prefixStr = this.prefix ? `[${this.prefix}] ` : '';
|
|
45
|
+
const levelStr = `[${level.toUpperCase()}] `;
|
|
46
|
+
|
|
47
|
+
let formattedMessage = `${timestampStr}${prefixStr}${levelStr}${message}`;
|
|
48
|
+
|
|
49
|
+
if (args.length > 0) {
|
|
50
|
+
formattedMessage += ' ' + args.map(arg =>
|
|
51
|
+
typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg)
|
|
52
|
+
).join(' ');
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return formattedMessage;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Check if level should be logged
|
|
60
|
+
* @param {string} level - Log level to check
|
|
61
|
+
* @returns {boolean} Whether to log this level
|
|
62
|
+
*/
|
|
63
|
+
shouldLog(level) {
|
|
64
|
+
return this.levels[level] <= this.levels[this.level];
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Log error message
|
|
69
|
+
* @param {string} message - Error message
|
|
70
|
+
* @param {...any} args - Additional arguments
|
|
71
|
+
*/
|
|
72
|
+
error(message, ...args) {
|
|
73
|
+
if (!this.shouldLog('error')) return;
|
|
74
|
+
|
|
75
|
+
const formattedMessage = this.formatMessage('error', message, args);
|
|
76
|
+
console.error(formattedMessage);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Log warning message
|
|
81
|
+
* @param {string} message - Warning message
|
|
82
|
+
* @param {...any} args - Additional arguments
|
|
83
|
+
*/
|
|
84
|
+
warn(message, ...args) {
|
|
85
|
+
if (!this.shouldLog('warn')) return;
|
|
86
|
+
|
|
87
|
+
const formattedMessage = this.formatMessage('warn', message, args);
|
|
88
|
+
console.warn(formattedMessage);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Log info message
|
|
93
|
+
* @param {string} message - Info message
|
|
94
|
+
* @param {...any} args - Additional arguments
|
|
95
|
+
*/
|
|
96
|
+
info(message, ...args) {
|
|
97
|
+
if (!this.shouldLog('info')) return;
|
|
98
|
+
|
|
99
|
+
const formattedMessage = this.formatMessage('info', message, args);
|
|
100
|
+
console.info(formattedMessage);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Log debug message
|
|
105
|
+
* @param {string} message - Debug message
|
|
106
|
+
* @param {...any} args - Additional arguments
|
|
107
|
+
*/
|
|
108
|
+
debug(message, ...args) {
|
|
109
|
+
if (!this.shouldLog('debug')) return;
|
|
110
|
+
|
|
111
|
+
const formattedMessage = this.formatMessage('debug', message, args);
|
|
112
|
+
console.debug(formattedMessage);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Log trace message
|
|
117
|
+
* @param {string} message - Trace message
|
|
118
|
+
* @param {...any} args - Additional arguments
|
|
119
|
+
*/
|
|
120
|
+
trace(message, ...args) {
|
|
121
|
+
if (!this.shouldLog('trace')) return;
|
|
122
|
+
|
|
123
|
+
const formattedMessage = this.formatMessage('trace', message, args);
|
|
124
|
+
console.trace(formattedMessage);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Log message (alias for info)
|
|
129
|
+
* @param {string} message - Log message
|
|
130
|
+
* @param {...any} args - Additional arguments
|
|
131
|
+
*/
|
|
132
|
+
log(message, ...args) {
|
|
133
|
+
this.info(message, ...args);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Set log level
|
|
138
|
+
* @param {string} level - New log level
|
|
139
|
+
*/
|
|
140
|
+
setLevel(level) {
|
|
141
|
+
if (this.levels.hasOwnProperty(level)) {
|
|
142
|
+
this.level = level;
|
|
143
|
+
} else {
|
|
144
|
+
this.warn(`Invalid log level: ${level}. Using 'info' instead.`);
|
|
145
|
+
this.level = 'info';
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Get current log level
|
|
151
|
+
* @returns {string} Current log level
|
|
152
|
+
*/
|
|
153
|
+
getLevel() {
|
|
154
|
+
return this.level;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Create a child logger with a specific prefix
|
|
159
|
+
* @param {string} childPrefix - Prefix for the child logger
|
|
160
|
+
* @param {Object} options - Additional options
|
|
161
|
+
* @returns {Logger} Child logger instance
|
|
162
|
+
*/
|
|
163
|
+
child(childPrefix, options = {}) {
|
|
164
|
+
const fullPrefix = this.prefix ? `${this.prefix}:${childPrefix}` : childPrefix;
|
|
165
|
+
return new Logger({
|
|
166
|
+
level: this.level,
|
|
167
|
+
prefix: fullPrefix,
|
|
168
|
+
enableTimestamp: this.enableTimestamp,
|
|
169
|
+
enableColors: this.enableColors,
|
|
170
|
+
...options
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Create default logger instance
|
|
176
|
+
const logger = new Logger({
|
|
177
|
+
level: process.env.NODE_ENV === 'development' ? 'debug' : 'info',
|
|
178
|
+
prefix: 'VibeCodingMachine',
|
|
179
|
+
enableTimestamp: true,
|
|
180
|
+
enableColors: true
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
// Export console methods for backward compatibility
|
|
184
|
+
const consoleLogger = {
|
|
185
|
+
log: (...args) => logger.log(...args),
|
|
186
|
+
info: (...args) => logger.info(...args),
|
|
187
|
+
warn: (...args) => logger.warn(...args),
|
|
188
|
+
error: (...args) => logger.error(...args),
|
|
189
|
+
debug: (...args) => logger.debug(...args),
|
|
190
|
+
trace: (...args) => logger.trace(...args)
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
module.exports = { logger, Logger, consoleLogger };
|