@howlil/ez-agents 2.0.0 → 2.0.1
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/LICENSE +21 -21
- package/README.md +93 -93
- package/agents/ez-plan-checker.md +2 -2
- package/agents/ez-research-synthesizer.md +1 -1
- package/agents/ez-ui-researcher.md +1 -1
- package/agents/ez-verifier.md +1 -1
- package/bin/install.js +132 -132
- package/get-shit-done/bin/lib/assistant-adapter.cjs +205 -205
- package/get-shit-done/bin/lib/audit-exec.cjs +150 -150
- package/get-shit-done/bin/lib/auth.cjs +175 -175
- package/get-shit-done/bin/lib/circuit-breaker.cjs +118 -118
- package/get-shit-done/bin/lib/commands.cjs +666 -666
- package/get-shit-done/bin/lib/config.cjs +183 -183
- package/get-shit-done/bin/lib/core.cjs +495 -495
- package/get-shit-done/bin/lib/file-lock.cjs +236 -236
- package/get-shit-done/bin/lib/frontmatter.cjs +299 -299
- package/get-shit-done/bin/lib/fs-utils.cjs +153 -153
- package/get-shit-done/bin/lib/git-utils.cjs +203 -203
- package/get-shit-done/bin/lib/health-check.cjs +163 -163
- package/get-shit-done/bin/lib/index.cjs +113 -113
- package/get-shit-done/bin/lib/init.cjs +710 -710
- package/get-shit-done/bin/lib/logger.cjs +117 -117
- package/get-shit-done/bin/lib/milestone.cjs +241 -241
- package/get-shit-done/bin/lib/model-provider.cjs +146 -146
- package/get-shit-done/bin/lib/phase.cjs +908 -908
- package/get-shit-done/bin/lib/retry.cjs +119 -119
- package/get-shit-done/bin/lib/roadmap.cjs +305 -305
- package/get-shit-done/bin/lib/safe-exec.cjs +128 -128
- package/get-shit-done/bin/lib/safe-path.cjs +130 -130
- package/get-shit-done/bin/lib/state.cjs +721 -721
- package/get-shit-done/bin/lib/temp-file.cjs +239 -239
- package/get-shit-done/bin/lib/template.cjs +222 -222
- package/get-shit-done/bin/lib/test-file-lock.cjs +112 -112
- package/get-shit-done/bin/lib/test-graceful.cjs +93 -93
- package/get-shit-done/bin/lib/test-logger.cjs +60 -60
- package/get-shit-done/bin/lib/test-safe-exec.cjs +38 -38
- package/get-shit-done/bin/lib/test-safe-path.cjs +33 -33
- package/get-shit-done/bin/lib/test-temp-file.cjs +125 -125
- package/get-shit-done/bin/lib/timeout-exec.cjs +62 -62
- package/get-shit-done/bin/lib/verify.cjs +820 -820
- package/get-shit-done/references/checkpoints.md +776 -776
- package/get-shit-done/references/questioning.md +162 -162
- package/get-shit-done/references/tdd.md +263 -263
- package/get-shit-done/templates/codebase/concerns.md +310 -310
- package/get-shit-done/templates/codebase/conventions.md +307 -307
- package/get-shit-done/templates/codebase/integrations.md +280 -280
- package/get-shit-done/templates/codebase/stack.md +186 -186
- package/get-shit-done/templates/codebase/testing.md +480 -480
- package/get-shit-done/templates/config.json +37 -37
- package/get-shit-done/templates/continue-here.md +78 -78
- package/get-shit-done/templates/milestone-archive.md +123 -123
- package/get-shit-done/templates/milestone.md +115 -115
- package/get-shit-done/templates/requirements.md +231 -231
- package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -204
- package/get-shit-done/templates/research-project/FEATURES.md +147 -147
- package/get-shit-done/templates/research-project/PITFALLS.md +200 -200
- package/get-shit-done/templates/research-project/STACK.md +120 -120
- package/get-shit-done/templates/research-project/SUMMARY.md +170 -170
- package/get-shit-done/templates/retrospective.md +54 -54
- package/get-shit-done/templates/roadmap.md +202 -202
- package/get-shit-done/templates/summary-minimal.md +41 -41
- package/get-shit-done/templates/summary-standard.md +48 -48
- package/get-shit-done/templates/summary.md +248 -248
- package/get-shit-done/templates/user-setup.md +311 -311
- package/get-shit-done/templates/verification-report.md +322 -322
- package/get-shit-done/workflows/add-phase.md +112 -112
- package/get-shit-done/workflows/add-tests.md +351 -351
- package/get-shit-done/workflows/add-todo.md +158 -158
- package/get-shit-done/workflows/audit-milestone.md +332 -332
- package/get-shit-done/workflows/autonomous.md +743 -743
- package/get-shit-done/workflows/check-todos.md +177 -177
- package/get-shit-done/workflows/cleanup.md +152 -152
- package/get-shit-done/workflows/complete-milestone.md +766 -766
- package/get-shit-done/workflows/diagnose-issues.md +219 -219
- package/get-shit-done/workflows/discovery-phase.md +289 -289
- package/get-shit-done/workflows/discuss-phase.md +762 -762
- package/get-shit-done/workflows/execute-phase.md +468 -468
- package/get-shit-done/workflows/execute-plan.md +483 -483
- package/get-shit-done/workflows/health.md +159 -159
- package/get-shit-done/workflows/help.md +492 -492
- package/get-shit-done/workflows/insert-phase.md +130 -130
- package/get-shit-done/workflows/list-phase-assumptions.md +178 -178
- package/get-shit-done/workflows/map-codebase.md +316 -316
- package/get-shit-done/workflows/new-milestone.md +384 -384
- package/get-shit-done/workflows/new-project.md +1111 -1111
- package/get-shit-done/workflows/node-repair.md +92 -92
- package/get-shit-done/workflows/pause-work.md +122 -122
- package/get-shit-done/workflows/plan-milestone-gaps.md +274 -274
- package/get-shit-done/workflows/plan-phase.md +651 -651
- package/get-shit-done/workflows/progress.md +382 -382
- package/get-shit-done/workflows/quick.md +610 -610
- package/get-shit-done/workflows/remove-phase.md +155 -155
- package/get-shit-done/workflows/research-phase.md +74 -74
- package/get-shit-done/workflows/resume-project.md +307 -307
- package/get-shit-done/workflows/set-profile.md +81 -81
- package/get-shit-done/workflows/settings.md +242 -242
- package/get-shit-done/workflows/stats.md +57 -57
- package/get-shit-done/workflows/transition.md +544 -544
- package/get-shit-done/workflows/ui-phase.md +290 -290
- package/get-shit-done/workflows/ui-review.md +157 -157
- package/get-shit-done/workflows/update.md +320 -320
- package/get-shit-done/workflows/validate-phase.md +167 -167
- package/get-shit-done/workflows/verify-phase.md +243 -243
- package/package.json +1 -1
- package/scripts/build-hooks.js +43 -43
- package/scripts/run-tests.cjs +29 -29
|
@@ -1,117 +1,117 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* GSD Logger — Centralized logging module for GSD workflow
|
|
5
|
-
*
|
|
6
|
-
* Provides structured logging with levels (ERROR, WARN, INFO, DEBUG)
|
|
7
|
-
* Writes to .planning/logs/gsd-{timestamp}.log
|
|
8
|
-
* Replaces silent catch {} blocks with proper error logging
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* const Logger = require('./logger.cjs');
|
|
12
|
-
* const logger = new Logger();
|
|
13
|
-
* logger.error('Something failed', { context: 'details' });
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
const fs = require('fs');
|
|
17
|
-
const path = require('path');
|
|
18
|
-
|
|
19
|
-
class Logger {
|
|
20
|
-
/**
|
|
21
|
-
* Create a Logger instance
|
|
22
|
-
* @param {string} logDir - Directory for log files (default: .planning/logs)
|
|
23
|
-
*/
|
|
24
|
-
constructor(logDir = '.planning/logs') {
|
|
25
|
-
this.logDir = logDir;
|
|
26
|
-
this.logFile = null;
|
|
27
|
-
this._ensureLogDir();
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Ensure log directory exists and initialize log file
|
|
32
|
-
*/
|
|
33
|
-
_ensureLogDir() {
|
|
34
|
-
if (!fs.existsSync(this.logDir)) {
|
|
35
|
-
fs.mkdirSync(this.logDir, { recursive: true });
|
|
36
|
-
}
|
|
37
|
-
this.logFile = path.join(this.logDir, `gsd-${Date.now()}.log`);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Get current log file path
|
|
42
|
-
* @returns {string} - Path to log file
|
|
43
|
-
*/
|
|
44
|
-
getLogFile() {
|
|
45
|
-
return this.logFile;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Write a log entry
|
|
50
|
-
* @param {string} level - Log level (ERROR, WARN, INFO, DEBUG)
|
|
51
|
-
* @param {string} message - Log message
|
|
52
|
-
* @param {Object} context - Additional context data
|
|
53
|
-
*/
|
|
54
|
-
log(level, message, context = {}) {
|
|
55
|
-
const entry = {
|
|
56
|
-
timestamp: new Date().toISOString(),
|
|
57
|
-
level,
|
|
58
|
-
message,
|
|
59
|
-
context,
|
|
60
|
-
pid: process.pid
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
try {
|
|
64
|
-
fs.appendFileSync(this.logFile, JSON.stringify(entry) + '\n');
|
|
65
|
-
|
|
66
|
-
// Always output ERROR level to console for visibility
|
|
67
|
-
if (level === 'ERROR') {
|
|
68
|
-
console.error(`[GSD ${level}] ${message}`);
|
|
69
|
-
}
|
|
70
|
-
} catch (err) {
|
|
71
|
-
// Fallback: log to console if file write fails
|
|
72
|
-
console.error(`[GSD ${level}] ${message} (file write failed: ${err.message})`);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Log an ERROR level message
|
|
78
|
-
* @param {string} msg - Error message
|
|
79
|
-
* @param {Object} ctx - Additional context
|
|
80
|
-
*/
|
|
81
|
-
error(msg, ctx) {
|
|
82
|
-
this.log('ERROR', msg, ctx);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Log a WARN level message
|
|
87
|
-
* @param {string} msg - Warning message
|
|
88
|
-
* @param {Object} ctx - Additional context
|
|
89
|
-
*/
|
|
90
|
-
warn(msg, ctx) {
|
|
91
|
-
this.log('WARN', msg, ctx);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Log an INFO level message
|
|
96
|
-
* @param {string} msg - Info message
|
|
97
|
-
* @param {Object} ctx - Additional context
|
|
98
|
-
*/
|
|
99
|
-
info(msg, ctx) {
|
|
100
|
-
this.log('INFO', msg, ctx);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Log a DEBUG level message
|
|
105
|
-
* @param {string} msg - Debug message
|
|
106
|
-
* @param {Object} ctx - Additional context
|
|
107
|
-
*/
|
|
108
|
-
debug(msg, ctx) {
|
|
109
|
-
this.log('DEBUG', msg, ctx);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// Singleton instance for default usage
|
|
114
|
-
const defaultLogger = new Logger();
|
|
115
|
-
|
|
116
|
-
module.exports = Logger;
|
|
117
|
-
module.exports.defaultLogger = defaultLogger;
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* GSD Logger — Centralized logging module for GSD workflow
|
|
5
|
+
*
|
|
6
|
+
* Provides structured logging with levels (ERROR, WARN, INFO, DEBUG)
|
|
7
|
+
* Writes to .planning/logs/gsd-{timestamp}.log
|
|
8
|
+
* Replaces silent catch {} blocks with proper error logging
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* const Logger = require('./logger.cjs');
|
|
12
|
+
* const logger = new Logger();
|
|
13
|
+
* logger.error('Something failed', { context: 'details' });
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
const fs = require('fs');
|
|
17
|
+
const path = require('path');
|
|
18
|
+
|
|
19
|
+
class Logger {
|
|
20
|
+
/**
|
|
21
|
+
* Create a Logger instance
|
|
22
|
+
* @param {string} logDir - Directory for log files (default: .planning/logs)
|
|
23
|
+
*/
|
|
24
|
+
constructor(logDir = '.planning/logs') {
|
|
25
|
+
this.logDir = logDir;
|
|
26
|
+
this.logFile = null;
|
|
27
|
+
this._ensureLogDir();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Ensure log directory exists and initialize log file
|
|
32
|
+
*/
|
|
33
|
+
_ensureLogDir() {
|
|
34
|
+
if (!fs.existsSync(this.logDir)) {
|
|
35
|
+
fs.mkdirSync(this.logDir, { recursive: true });
|
|
36
|
+
}
|
|
37
|
+
this.logFile = path.join(this.logDir, `gsd-${Date.now()}.log`);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Get current log file path
|
|
42
|
+
* @returns {string} - Path to log file
|
|
43
|
+
*/
|
|
44
|
+
getLogFile() {
|
|
45
|
+
return this.logFile;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Write a log entry
|
|
50
|
+
* @param {string} level - Log level (ERROR, WARN, INFO, DEBUG)
|
|
51
|
+
* @param {string} message - Log message
|
|
52
|
+
* @param {Object} context - Additional context data
|
|
53
|
+
*/
|
|
54
|
+
log(level, message, context = {}) {
|
|
55
|
+
const entry = {
|
|
56
|
+
timestamp: new Date().toISOString(),
|
|
57
|
+
level,
|
|
58
|
+
message,
|
|
59
|
+
context,
|
|
60
|
+
pid: process.pid
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
try {
|
|
64
|
+
fs.appendFileSync(this.logFile, JSON.stringify(entry) + '\n');
|
|
65
|
+
|
|
66
|
+
// Always output ERROR level to console for visibility
|
|
67
|
+
if (level === 'ERROR') {
|
|
68
|
+
console.error(`[GSD ${level}] ${message}`);
|
|
69
|
+
}
|
|
70
|
+
} catch (err) {
|
|
71
|
+
// Fallback: log to console if file write fails
|
|
72
|
+
console.error(`[GSD ${level}] ${message} (file write failed: ${err.message})`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Log an ERROR level message
|
|
78
|
+
* @param {string} msg - Error message
|
|
79
|
+
* @param {Object} ctx - Additional context
|
|
80
|
+
*/
|
|
81
|
+
error(msg, ctx) {
|
|
82
|
+
this.log('ERROR', msg, ctx);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Log a WARN level message
|
|
87
|
+
* @param {string} msg - Warning message
|
|
88
|
+
* @param {Object} ctx - Additional context
|
|
89
|
+
*/
|
|
90
|
+
warn(msg, ctx) {
|
|
91
|
+
this.log('WARN', msg, ctx);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Log an INFO level message
|
|
96
|
+
* @param {string} msg - Info message
|
|
97
|
+
* @param {Object} ctx - Additional context
|
|
98
|
+
*/
|
|
99
|
+
info(msg, ctx) {
|
|
100
|
+
this.log('INFO', msg, ctx);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Log a DEBUG level message
|
|
105
|
+
* @param {string} msg - Debug message
|
|
106
|
+
* @param {Object} ctx - Additional context
|
|
107
|
+
*/
|
|
108
|
+
debug(msg, ctx) {
|
|
109
|
+
this.log('DEBUG', msg, ctx);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Singleton instance for default usage
|
|
114
|
+
const defaultLogger = new Logger();
|
|
115
|
+
|
|
116
|
+
module.exports = Logger;
|
|
117
|
+
module.exports.defaultLogger = defaultLogger;
|