@dev-guard/cli 0.1.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/LICENSE +21 -0
- package/README.md +79 -0
- package/dist/agent-strategies.d.ts +23 -0
- package/dist/agent-strategies.js +130 -0
- package/dist/agent-strategies.js.map +1 -0
- package/dist/ai-context.d.ts +10 -0
- package/dist/ai-context.js +143 -0
- package/dist/ai-context.js.map +1 -0
- package/dist/check.d.ts +6 -0
- package/dist/check.js +89 -0
- package/dist/check.js.map +1 -0
- package/dist/clipboard.d.ts +6 -0
- package/dist/clipboard.js +43 -0
- package/dist/clipboard.js.map +1 -0
- package/dist/codex-notify.d.ts +23 -0
- package/dist/codex-notify.js +146 -0
- package/dist/codex-notify.js.map +1 -0
- package/dist/command-targets.d.ts +10 -0
- package/dist/command-targets.js +124 -0
- package/dist/command-targets.js.map +1 -0
- package/dist/config.d.ts +22 -0
- package/dist/config.js +180 -0
- package/dist/config.js.map +1 -0
- package/dist/configure.d.ts +1 -0
- package/dist/configure.js +79 -0
- package/dist/configure.js.map +1 -0
- package/dist/doctor.d.ts +1 -0
- package/dist/doctor.js +326 -0
- package/dist/doctor.js.map +1 -0
- package/dist/drift-telemetry.d.ts +13 -0
- package/dist/drift-telemetry.js +64 -0
- package/dist/drift-telemetry.js.map +1 -0
- package/dist/effective-task.d.ts +44 -0
- package/dist/effective-task.js +355 -0
- package/dist/effective-task.js.map +1 -0
- package/dist/fs.d.ts +10 -0
- package/dist/fs.js +58 -0
- package/dist/fs.js.map +1 -0
- package/dist/git.d.ts +24 -0
- package/dist/git.js +235 -0
- package/dist/git.js.map +1 -0
- package/dist/hooks.d.ts +39 -0
- package/dist/hooks.js +513 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +555 -0
- package/dist/index.js.map +1 -0
- package/dist/infer-task.d.ts +1 -0
- package/dist/infer-task.js +120 -0
- package/dist/infer-task.js.map +1 -0
- package/dist/init.d.ts +1 -0
- package/dist/init.js +50 -0
- package/dist/init.js.map +1 -0
- package/dist/install-agent-instructions.d.ts +1 -0
- package/dist/install-agent-instructions.js +113 -0
- package/dist/install-agent-instructions.js.map +1 -0
- package/dist/migration.d.ts +8 -0
- package/dist/migration.js +43 -0
- package/dist/migration.js.map +1 -0
- package/dist/paths.d.ts +38 -0
- package/dist/paths.js +41 -0
- package/dist/paths.js.map +1 -0
- package/dist/project-detection.d.ts +10 -0
- package/dist/project-detection.js +144 -0
- package/dist/project-detection.js.map +1 -0
- package/dist/project-identity.d.ts +7 -0
- package/dist/project-identity.js +93 -0
- package/dist/project-identity.js.map +1 -0
- package/dist/project-memory.d.ts +4 -0
- package/dist/project-memory.js +32 -0
- package/dist/project-memory.js.map +1 -0
- package/dist/prompt.d.ts +13 -0
- package/dist/prompt.js +125 -0
- package/dist/prompt.js.map +1 -0
- package/dist/refresh.d.ts +15 -0
- package/dist/refresh.js +146 -0
- package/dist/refresh.js.map +1 -0
- package/dist/report.d.ts +1 -0
- package/dist/report.js +109 -0
- package/dist/report.js.map +1 -0
- package/dist/review.d.ts +2 -0
- package/dist/review.js +653 -0
- package/dist/review.js.map +1 -0
- package/dist/rule-filter.d.ts +8 -0
- package/dist/rule-filter.js +79 -0
- package/dist/rule-filter.js.map +1 -0
- package/dist/runs.d.ts +21 -0
- package/dist/runs.js +142 -0
- package/dist/runs.js.map +1 -0
- package/dist/runtime-state.d.ts +69 -0
- package/dist/runtime-state.js +1383 -0
- package/dist/runtime-state.js.map +1 -0
- package/dist/scan.d.ts +1 -0
- package/dist/scan.js +55 -0
- package/dist/scan.js.map +1 -0
- package/dist/self.d.ts +3 -0
- package/dist/self.js +235 -0
- package/dist/self.js.map +1 -0
- package/dist/task-ai.d.ts +1 -0
- package/dist/task-ai.js +643 -0
- package/dist/task-ai.js.map +1 -0
- package/dist/telemetry.d.ts +1 -0
- package/dist/telemetry.js +11 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/update.d.ts +6 -0
- package/dist/update.js +154 -0
- package/dist/update.js.map +1 -0
- package/dist/watch.d.ts +1 -0
- package/dist/watch.js +303 -0
- package/dist/watch.js.map +1 -0
- package/package.json +31 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,555 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { runCheck } from "./check.js";
|
|
3
|
+
import { runConfigure } from "./configure.js";
|
|
4
|
+
import { runDoctor } from "./doctor.js";
|
|
5
|
+
import { runInferTask } from "./infer-task.js";
|
|
6
|
+
import { getHookStatus, runInstallHooks, writeHookStatusReport } from "./hooks.js";
|
|
7
|
+
import { runInit } from "./init.js";
|
|
8
|
+
import { legacyDevguardWarning } from "./migration.js";
|
|
9
|
+
import { devguardPaths } from "./paths.js";
|
|
10
|
+
import { parsePromptOptions, runPrompt } from "./prompt.js";
|
|
11
|
+
import { runRefresh } from "./refresh.js";
|
|
12
|
+
import { runReport } from "./report.js";
|
|
13
|
+
import { runFixPrompt, runReview } from "./review.js";
|
|
14
|
+
import { runScan } from "./scan.js";
|
|
15
|
+
import { runSelf, runSelfCheck } from "./self.js";
|
|
16
|
+
import { runTaskAI } from "./task-ai.js";
|
|
17
|
+
import { runTelemetry } from "./telemetry.js";
|
|
18
|
+
import { runUpdate } from "./update.js";
|
|
19
|
+
import { runWatch } from "./watch.js";
|
|
20
|
+
import { generateAgentContext, generateNextClaudePrompt, generateProjectHandoff, processDoneEvent, readHistoryRecords, readProjectState, readRuntimeState, resetRuntimeState } from "./runtime-state.js";
|
|
21
|
+
import { runInstallAgentInstructions } from "./install-agent-instructions.js";
|
|
22
|
+
import { formatStrategyFlag, getAgentStrategyReport } from "./agent-strategies.js";
|
|
23
|
+
async function main() {
|
|
24
|
+
const command = process.argv[2];
|
|
25
|
+
const root = process.env.INIT_CWD || process.cwd();
|
|
26
|
+
if (!command || command === "--help" || command === "-h") {
|
|
27
|
+
printHelp();
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (command === "help") {
|
|
31
|
+
if (process.argv[3] === "advanced") {
|
|
32
|
+
printAdvancedHelp();
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
printHelp();
|
|
36
|
+
}
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (command === "init") {
|
|
40
|
+
await runInit(root);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (command === "done") {
|
|
44
|
+
await runDone(root);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (command === "handoff") {
|
|
48
|
+
await runHandoff(root);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (command === "install-hooks") {
|
|
52
|
+
await runInstallHooks(root, process.argv.slice(3));
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (command === "install-agent-instructions") {
|
|
56
|
+
await runInstallAgentInstructions(root, process.argv.slice(3));
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (command === "infer-task") {
|
|
60
|
+
await runInferTask(root, process.argv.slice(3));
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (command === "status") {
|
|
64
|
+
await runStatus(root);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (command === "reset") {
|
|
68
|
+
await runReset(root);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (command === "check") {
|
|
72
|
+
await runCheck(root, {
|
|
73
|
+
includeContextFiles: process.argv.includes("--include-context-files"),
|
|
74
|
+
local: process.argv.includes("--local")
|
|
75
|
+
});
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (command === "configure" || command === "config") {
|
|
79
|
+
await runConfigure(root, process.argv.slice(3));
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (command === "scan") {
|
|
83
|
+
await runScan(root, process.argv.slice(3));
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (command === "refresh") {
|
|
87
|
+
await runRefresh(root, process.argv.slice(3));
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (command === "watch") {
|
|
91
|
+
await runWatch(root, process.argv.slice(3));
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (command === "doctor") {
|
|
95
|
+
await runDoctor(root, process.argv.slice(3));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (command === "telemetry") {
|
|
99
|
+
await runTelemetry(root);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (command === "report") {
|
|
103
|
+
await runReport(root, process.argv.slice(3));
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (command === "review") {
|
|
107
|
+
await runReview(root, process.argv.slice(3));
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (command === "fix-prompt") {
|
|
111
|
+
await runFixPrompt(root, process.argv.slice(3));
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (command === "update") {
|
|
115
|
+
await runUpdate(root, {
|
|
116
|
+
write: process.argv.includes("--write"),
|
|
117
|
+
includeContextFiles: process.argv.includes("--include-context-files")
|
|
118
|
+
});
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
if (command === "prompt") {
|
|
122
|
+
await runPrompt(root, parsePromptOptions(process.argv.slice(3)));
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
if (command === "task-ai") {
|
|
126
|
+
await runTaskAI(root, process.argv.slice(3));
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (command === "self") {
|
|
130
|
+
await runSelf(root, process.argv.slice(3));
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (command === "self-check") {
|
|
134
|
+
await runSelfCheck(root);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if (!command.startsWith("-")) {
|
|
138
|
+
await runSelf(root, process.argv.slice(2));
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
printHelp();
|
|
142
|
+
process.exitCode = 1;
|
|
143
|
+
}
|
|
144
|
+
function printHelp() {
|
|
145
|
+
console.log(`dev-guard
|
|
146
|
+
|
|
147
|
+
Quick commands:
|
|
148
|
+
dev-guard init
|
|
149
|
+
dev-guard install-hooks [--agent <claude|codex|codex-notify|all>] [--install-dispatcher]
|
|
150
|
+
dev-guard install-agent-instructions [--force]
|
|
151
|
+
dev-guard watch
|
|
152
|
+
dev-guard done
|
|
153
|
+
dev-guard handoff
|
|
154
|
+
dev-guard status
|
|
155
|
+
dev-guard reset
|
|
156
|
+
|
|
157
|
+
Recommended Auto Mode:
|
|
158
|
+
1. dev-guard init
|
|
159
|
+
2. dev-guard install-hooks
|
|
160
|
+
3. dev-guard install-agent-instructions
|
|
161
|
+
4. dev-guard watch
|
|
162
|
+
5. Run Claude/Codex; verified completion strategy runs done automatically
|
|
163
|
+
6. dev-guard status
|
|
164
|
+
|
|
165
|
+
New session resume:
|
|
166
|
+
Read .devguard/context/agent-context.md and continue.
|
|
167
|
+
|
|
168
|
+
Manual fallback:
|
|
169
|
+
dev-guard watch --manual
|
|
170
|
+
dev-guard done
|
|
171
|
+
|
|
172
|
+
More:
|
|
173
|
+
dev-guard help advanced
|
|
174
|
+
`);
|
|
175
|
+
}
|
|
176
|
+
function printAdvancedHelp() {
|
|
177
|
+
console.log(`dev-guard advanced
|
|
178
|
+
|
|
179
|
+
Usage:
|
|
180
|
+
dev-guard init
|
|
181
|
+
dev-guard "requirement"
|
|
182
|
+
dev-guard done
|
|
183
|
+
dev-guard handoff
|
|
184
|
+
dev-guard install-hooks [--force] [--agent <claude|codex|codex-notify|all>] [--install-dispatcher]
|
|
185
|
+
dev-guard status
|
|
186
|
+
dev-guard reset
|
|
187
|
+
dev-guard check [--local] [--include-context-files]
|
|
188
|
+
dev-guard configure ai --provider openai --model gpt-4o-mini
|
|
189
|
+
dev-guard config set <provider|model|temperature|maxTokens|reasoningEffort|baseURL> <value>
|
|
190
|
+
dev-guard config show
|
|
191
|
+
dev-guard scan [--full] [--ai]
|
|
192
|
+
dev-guard refresh [--full] [--ai] [--dry-run]
|
|
193
|
+
dev-guard watch [--manual|--no-auto] [--stable-after <sec>] [--depth <n>] [--poll] [--include-lockfiles] [--compact|--ultra]
|
|
194
|
+
dev-guard doctor [--hooks] [--agents] [--dry-run]
|
|
195
|
+
dev-guard telemetry
|
|
196
|
+
dev-guard report [--compact] [--copy] [--json] [--since <ref>]
|
|
197
|
+
dev-guard review [--heuristic] [--fix-prompt] [--copy] [--output <file>] [--copy-fix] [--include-context-files] [--staged] [--commit <ref>] [--run <id|latest>] [--no-run] [--task] [--from-diff]
|
|
198
|
+
dev-guard fix-prompt [--copy] [--output <file>] [--include-context-files] [--staged] [--commit <ref>] [--run <id|latest>] [--no-run]
|
|
199
|
+
dev-guard update [--write] [--include-context-files]
|
|
200
|
+
dev-guard prompt [--compact] [--ultra-compact] [--density <ultra|compact|verbose>] [--max-prompt-tokens <n>] [--copy] [--output <file>] [--include-context-files] [--save-run]
|
|
201
|
+
dev-guard infer-task [--write]
|
|
202
|
+
dev-guard task-ai "<requirement>" [--write] [--prompt] [--copy] [--save-run] [--context-files <n>] [--no-code-context] [--no-cache|--fresh] [--debug-context]
|
|
203
|
+
dev-guard self "<requirement>" [--copy] [--check]
|
|
204
|
+
dev-guard self-check
|
|
205
|
+
|
|
206
|
+
Commands:
|
|
207
|
+
init Create .devguard and docs guard files
|
|
208
|
+
"requirement" Generate task.md and a compact Codex prompt
|
|
209
|
+
done Manually process pending changes and generate report/next prompt/handoff/agent-context
|
|
210
|
+
handoff Regenerate project-handoff.md and agent-context.md from current .devguard/ artifacts
|
|
211
|
+
install-hooks Install agent completion strategy scripts/config
|
|
212
|
+
install-agent-instructions Create or update AGENTS.md / CLAUDE.md with dev-guard context guidance
|
|
213
|
+
status Show pending watch state, recommended mode, and last processed task
|
|
214
|
+
reset Clear watch runtime state without deleting project state
|
|
215
|
+
check Analyze current git diff with rule-based checks
|
|
216
|
+
configure Configure dev-guard settings
|
|
217
|
+
scan Cache project structure and file summaries into .devguard
|
|
218
|
+
refresh Incrementally update project memory cache
|
|
219
|
+
watch Recommended watcher; waits for a runtime-verified completion strategy, or manual done fallback
|
|
220
|
+
doctor Print config/provider/git diagnostics, hook diagnostics with --hooks, and agent strategy diagnostics with --agents
|
|
221
|
+
telemetry Print privacy-safe drift telemetry summary
|
|
222
|
+
report Print a compact current-work summary for ChatGPT/Codex handoff
|
|
223
|
+
review AI-review current changes against task/rules/mistakes
|
|
224
|
+
fix-prompt Generate a Codex-ready fix prompt from AI review
|
|
225
|
+
update Generate project docs update candidates from current git diff
|
|
226
|
+
prompt Generate a Codex-ready task prompt from project context
|
|
227
|
+
infer-task Preview (or write) a task.md inferred from the current git diff
|
|
228
|
+
task-ai Generate .devguard/task.md from natural language with an AI provider
|
|
229
|
+
self Dogfood dev-guard on this repo and print an ultra-compact Codex prompt
|
|
230
|
+
self-check Run build, local check, heuristic review, and doctor sequentially
|
|
231
|
+
`);
|
|
232
|
+
}
|
|
233
|
+
async function runDone(root) {
|
|
234
|
+
try {
|
|
235
|
+
const result = await processDoneEvent(root);
|
|
236
|
+
console.log("작업 완료 처리됨");
|
|
237
|
+
console.log("");
|
|
238
|
+
console.log("변경 파일:");
|
|
239
|
+
for (const file of result.changedFiles.slice(0, 20)) {
|
|
240
|
+
console.log(`- ${file}`);
|
|
241
|
+
}
|
|
242
|
+
if (result.changedFiles.length > 20) {
|
|
243
|
+
console.log(`- ... +${result.changedFiles.length - 20} files`);
|
|
244
|
+
}
|
|
245
|
+
console.log("");
|
|
246
|
+
console.log("감지된 영역:");
|
|
247
|
+
for (const area of result.areas) {
|
|
248
|
+
console.log(`- ${area}`);
|
|
249
|
+
}
|
|
250
|
+
console.log("");
|
|
251
|
+
console.log("판단:");
|
|
252
|
+
for (const judgment of result.judgments) {
|
|
253
|
+
console.log(`- ${judgment}`);
|
|
254
|
+
}
|
|
255
|
+
console.log("");
|
|
256
|
+
console.log("생성됨:");
|
|
257
|
+
console.log(`- ${result.reportPath}`);
|
|
258
|
+
console.log(`- ${result.promptPath}`);
|
|
259
|
+
console.log(`- ${result.historySummaryPath}`);
|
|
260
|
+
console.log(`- ${result.decisionCandidatesPath}`);
|
|
261
|
+
console.log(`- ${result.qualityReportPath}`);
|
|
262
|
+
console.log(`- ${result.projectHandoffPath}`);
|
|
263
|
+
console.log(`- ${result.agentContextPath}`);
|
|
264
|
+
console.log(`- ${result.nextClaudePromptPath}`);
|
|
265
|
+
console.log("");
|
|
266
|
+
console.log(`Quality: ${result.qualityVerdict}`);
|
|
267
|
+
console.log("");
|
|
268
|
+
console.log("새 세션 시작 시:");
|
|
269
|
+
console.log(` Read ${result.agentContextPath} and continue.`);
|
|
270
|
+
console.log("");
|
|
271
|
+
console.log("다음 작업:");
|
|
272
|
+
console.log(`${result.promptPath} 확인 후 필요한 수정 진행`);
|
|
273
|
+
}
|
|
274
|
+
catch (error) {
|
|
275
|
+
console.error(`dev-guard done failed: ${errorMessage(error)}`);
|
|
276
|
+
console.error("recovery: run dev-guard status, then dev-guard reset if the pending buffer is wrong");
|
|
277
|
+
process.exitCode = 1;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
async function runHandoff(root) {
|
|
281
|
+
try {
|
|
282
|
+
const [handoffPath, agentContextPath, nextClaudePromptPath] = await Promise.all([
|
|
283
|
+
generateProjectHandoff(root),
|
|
284
|
+
generateAgentContext(root),
|
|
285
|
+
generateNextClaudePrompt(root)
|
|
286
|
+
]);
|
|
287
|
+
console.log("dev-guard handoff");
|
|
288
|
+
console.log("generated:");
|
|
289
|
+
console.log(`- ${handoffPath}`);
|
|
290
|
+
console.log(`- ${agentContextPath}`);
|
|
291
|
+
console.log(`- ${nextClaudePromptPath}`);
|
|
292
|
+
console.log("");
|
|
293
|
+
console.log("Resume prompt for new session:");
|
|
294
|
+
console.log(` Read ${devguardPaths.agentContext} and continue.`);
|
|
295
|
+
}
|
|
296
|
+
catch (error) {
|
|
297
|
+
console.error(`dev-guard handoff failed: ${errorMessage(error)}`);
|
|
298
|
+
process.exitCode = 1;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
async function runStatus(root) {
|
|
302
|
+
console.log("dev-guard status");
|
|
303
|
+
const [runtime, state, history, hookStatus] = await Promise.all([
|
|
304
|
+
readRuntimeState(root),
|
|
305
|
+
readProjectState(root),
|
|
306
|
+
readHistoryRecords(root, 3),
|
|
307
|
+
getHookStatus(root)
|
|
308
|
+
]);
|
|
309
|
+
const strategyReport = await getAgentStrategyReport(root);
|
|
310
|
+
await writeHookStatusReport(root);
|
|
311
|
+
console.log(`Pending files: ${runtime.pendingChangedFiles.length}`);
|
|
312
|
+
for (const file of runtime.pendingChangedFiles.slice(0, 12)) {
|
|
313
|
+
console.log(`- ${file}`);
|
|
314
|
+
}
|
|
315
|
+
if (runtime.pendingChangedFiles.length > 12) {
|
|
316
|
+
console.log(`- ... +${runtime.pendingChangedFiles.length - 12} files`);
|
|
317
|
+
}
|
|
318
|
+
console.log(`Runtime status: ${runtime.lastStatus ?? "idle"}`);
|
|
319
|
+
if (runtime.pendingChangedFiles.length === 0) {
|
|
320
|
+
console.log("State: 대기 중");
|
|
321
|
+
}
|
|
322
|
+
console.log(`Last changed: ${runtime.lastChangedAt ?? "none"}`);
|
|
323
|
+
console.log(`Last processed: ${state.lastProcessedAt ?? "none"}`);
|
|
324
|
+
console.log(`Last summary: ${state.lastSummary ?? "none"}`);
|
|
325
|
+
console.log(`Drift: ${state.lastDrift ?? "unknown"}`);
|
|
326
|
+
console.log(`Quality: ${state.lastQualityVerdict ?? "unknown"}`);
|
|
327
|
+
console.log("");
|
|
328
|
+
const claudeHook = hookStatus.claudeInstalled && hookStatus.claudeHookFile ? "INSTALLED" : "NOT_INSTALLED";
|
|
329
|
+
const codexHook = hookStatus.codexInstalled && hookStatus.codexHookFile ? "INSTALLED" : "NOT_INSTALLED";
|
|
330
|
+
const claudeVerified = claudeHook === "INSTALLED" && hookStatus.claudeLastSuccess === true;
|
|
331
|
+
const codexVerified = codexHook === "INSTALLED" && hookStatus.codexLastSuccess === true;
|
|
332
|
+
const hooksInstalled = claudeHook === "INSTALLED" || codexHook === "INSTALLED";
|
|
333
|
+
const hooksVerified = claudeVerified || codexVerified;
|
|
334
|
+
const runtimeVerified = strategyReport.strategies.some((strategy) => strategy.name !== "manual" && strategy.runtimeVerified);
|
|
335
|
+
console.log(`Mode: ${runtimeVerified ? "Auto completion runtime verified" : hooksInstalled ? "Auto completion installed, runtime not verified" : "Manual Mode fallback"}`);
|
|
336
|
+
console.log(`Hooks: Claude ${claudeHook} / ${claudeVerified ? "SCRIPT_VERIFIED" : "NOT_SCRIPT_VERIFIED"}; Codex ${codexHook} / ${codexVerified ? "SCRIPT_VERIFIED" : "NOT_SCRIPT_VERIFIED"}`);
|
|
337
|
+
console.log("");
|
|
338
|
+
console.log("Agent Strategies");
|
|
339
|
+
console.log("Claude Code");
|
|
340
|
+
console.log(`- strategy: ${strategyReport.claude.name}`);
|
|
341
|
+
console.log(`- installed: ${formatStrategyFlag(strategyReport.claude.installed)}`);
|
|
342
|
+
console.log(`- script verified: ${formatStrategyFlag(strategyReport.claude.scriptVerified)}`);
|
|
343
|
+
console.log(`- runtime verified: ${formatStrategyFlag(strategyReport.claude.runtimeVerified)}`);
|
|
344
|
+
console.log(`- next: ${strategyReport.claude.next}`);
|
|
345
|
+
console.log("");
|
|
346
|
+
console.log("Codex");
|
|
347
|
+
console.log(`- recommended strategy: ${strategyReport.codexNotify.name}`);
|
|
348
|
+
console.log(`- notify installed: ${formatStrategyFlag(strategyReport.codexNotify.installed)}`);
|
|
349
|
+
console.log(`- notify runtime verified: ${formatStrategyFlag(strategyReport.codexNotify.runtimeVerified)}`);
|
|
350
|
+
console.log(`- stop hook installed: ${formatStrategyFlag(strategyReport.codexStopHook.installed)}`);
|
|
351
|
+
console.log(`- stop hook requires trust: ${formatStrategyFlag(strategyReport.codexStopHook.requiresUserTrust)}`);
|
|
352
|
+
console.log(`- stop hook runtime verified: ${formatStrategyFlag(strategyReport.codexStopHook.runtimeVerified)}`);
|
|
353
|
+
console.log(`- jsonl listener installed: ${formatStrategyFlag(strategyReport.codexJsonlListener.installed)}`);
|
|
354
|
+
console.log(`- next: ${strategyReport.codexNotify.runtimeVerified ? "Codex notify runtime verified." : strategyReport.codexNotify.next}`);
|
|
355
|
+
console.log("");
|
|
356
|
+
console.log("Hooks");
|
|
357
|
+
console.log(`Claude Code: ${claudeHook} / ${claudeVerified ? "SCRIPT_VERIFIED" : "NOT_SCRIPT_VERIFIED"}`);
|
|
358
|
+
console.log(`Codex CLI: ${codexHook} / ${codexVerified ? "SCRIPT_VERIFIED" : "NOT_SCRIPT_VERIFIED"}`);
|
|
359
|
+
console.log(`Last Hook Trigger: ${hookStatus.lastTrigger ?? "none"}`);
|
|
360
|
+
console.log(`Last Hook Success: ${hookStatus.lastSuccess === undefined ? "unknown" : hookStatus.lastSuccess ? "yes" : "no"}`);
|
|
361
|
+
console.log("");
|
|
362
|
+
console.log("Auto Mode:");
|
|
363
|
+
console.log(hooksInstalled ? (runtimeVerified ? "Installed and runtime verified" : "Installed but runtime not verified") : "Not installed");
|
|
364
|
+
if (hooksInstalled && !runtimeVerified) {
|
|
365
|
+
console.log("");
|
|
366
|
+
console.log("Next:");
|
|
367
|
+
console.log("Run dev-guard doctor --agents");
|
|
368
|
+
console.log("If Codex is used, open Codex TUI and run /hooks to trust the dev-guard Stop hook.");
|
|
369
|
+
console.log("Fallback:");
|
|
370
|
+
console.log("dev-guard done");
|
|
371
|
+
}
|
|
372
|
+
console.log("");
|
|
373
|
+
console.log("Handoff:");
|
|
374
|
+
console.log(devguardPaths.projectHandoff);
|
|
375
|
+
console.log("");
|
|
376
|
+
console.log("Agent Context:");
|
|
377
|
+
console.log(devguardPaths.agentContext);
|
|
378
|
+
console.log("");
|
|
379
|
+
console.log("Resume prompt for new session:");
|
|
380
|
+
console.log(` Read ${devguardPaths.agentContext} and continue.`);
|
|
381
|
+
const legacyWarning = legacyDevguardWarning(root);
|
|
382
|
+
if (legacyWarning) {
|
|
383
|
+
console.log("");
|
|
384
|
+
console.log("Warning:");
|
|
385
|
+
console.log(legacyWarning);
|
|
386
|
+
}
|
|
387
|
+
if (history.length > 0) {
|
|
388
|
+
console.log("");
|
|
389
|
+
console.log("Recent history:");
|
|
390
|
+
for (const record of history.slice().reverse()) {
|
|
391
|
+
console.log(`- ${record.timestamp}: ${record.inferredSummary}`);
|
|
392
|
+
if (record.driftCandidates.length > 0) {
|
|
393
|
+
console.log(` drift: ${record.driftCandidates.slice(0, 2).join("; ")}`);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
console.log("");
|
|
398
|
+
console.log(`Next recommended action: ${nextRecommendedAction(runtime.pendingChangedFiles.length, state.lastDrift, state.lastQualityVerdict, state.lastQualityNextAction)}`);
|
|
399
|
+
console.log("Next:");
|
|
400
|
+
console.log(runtime.pendingChangedFiles.length > 0 ? " dev-guard done" : " dev-guard watch");
|
|
401
|
+
}
|
|
402
|
+
async function runReset(root) {
|
|
403
|
+
await resetRuntimeState(root);
|
|
404
|
+
console.log("dev-guard reset");
|
|
405
|
+
console.log("- runtime pending changes cleared");
|
|
406
|
+
console.log(`- ${devguardPaths.state} preserved`);
|
|
407
|
+
}
|
|
408
|
+
function errorMessage(error) {
|
|
409
|
+
return error instanceof Error ? error.message : String(error);
|
|
410
|
+
}
|
|
411
|
+
function nextRecommendedAction(pendingCount, drift, quality, qualityAction) {
|
|
412
|
+
if (pendingCount > 0) {
|
|
413
|
+
return "run dev-guard done";
|
|
414
|
+
}
|
|
415
|
+
if (quality === "BLOCKED") {
|
|
416
|
+
return "fix blocked quality items before commit";
|
|
417
|
+
}
|
|
418
|
+
if (quality === "NEEDS_REVIEW") {
|
|
419
|
+
return qualityAction ?? `run verification, then review ${devguardPaths.qualityReport}`;
|
|
420
|
+
}
|
|
421
|
+
if (quality === "PASS") {
|
|
422
|
+
return "ready for final review or commit";
|
|
423
|
+
}
|
|
424
|
+
if (drift && drift !== "low") {
|
|
425
|
+
return `review ${devguardPaths.nextCodexPrompt}`;
|
|
426
|
+
}
|
|
427
|
+
return "대기 중";
|
|
428
|
+
}
|
|
429
|
+
async function captureConsole(run) {
|
|
430
|
+
const originalLog = console.log;
|
|
431
|
+
const originalError = console.error;
|
|
432
|
+
const lines = [];
|
|
433
|
+
console.log = (...args) => {
|
|
434
|
+
lines.push(...args.map(String).join(" ").split(/\r?\n/));
|
|
435
|
+
};
|
|
436
|
+
console.error = (...args) => {
|
|
437
|
+
lines.push(...args.map(String).join(" ").split(/\r?\n/));
|
|
438
|
+
};
|
|
439
|
+
try {
|
|
440
|
+
await run();
|
|
441
|
+
}
|
|
442
|
+
finally {
|
|
443
|
+
console.log = originalLog;
|
|
444
|
+
console.error = originalError;
|
|
445
|
+
}
|
|
446
|
+
return lines;
|
|
447
|
+
}
|
|
448
|
+
function summarizeStepOutput(name, lines) {
|
|
449
|
+
if (name === "refresh") {
|
|
450
|
+
return pickLines(lines, ["updated summaries:", "removed summaries:", "unchanged files skipped:", "writes:", "next:"]);
|
|
451
|
+
}
|
|
452
|
+
if (name === "check --local") {
|
|
453
|
+
const warnings = countMatching(lines, "[warning]");
|
|
454
|
+
const info = countMatching(lines, "[info]");
|
|
455
|
+
const docs = lines.find((line) => line.startsWith("Docs update needed:"));
|
|
456
|
+
return [`findings: ${warnings} warning(s), ${info} info`, docs].filter(Boolean);
|
|
457
|
+
}
|
|
458
|
+
if (name === "review --heuristic") {
|
|
459
|
+
return summarizeReviewOutput(lines);
|
|
460
|
+
}
|
|
461
|
+
if (name === "report --compact") {
|
|
462
|
+
return lines.filter((line) => /^(Task|Changed|Check|Review|Next):/.test(line));
|
|
463
|
+
}
|
|
464
|
+
if (name === "update preview") {
|
|
465
|
+
return summarizeUpdatePreviewOutput(lines);
|
|
466
|
+
}
|
|
467
|
+
return lines.slice(0, 5);
|
|
468
|
+
}
|
|
469
|
+
function pickLines(lines, patterns) {
|
|
470
|
+
const selected = [];
|
|
471
|
+
for (const pattern of patterns) {
|
|
472
|
+
const line = lines.find((candidate) => candidate.includes(pattern));
|
|
473
|
+
if (line) {
|
|
474
|
+
selected.push(line);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
return selected.length > 0 ? selected : ["completed"];
|
|
478
|
+
}
|
|
479
|
+
function countMatching(lines, pattern) {
|
|
480
|
+
return lines.filter((line) => line.includes(pattern)).length;
|
|
481
|
+
}
|
|
482
|
+
function summarizeStatusOutput(doctorOutput, reportOutput) {
|
|
483
|
+
const provider = valueAfter(doctorOutput, "Provider:") ?? "unknown";
|
|
484
|
+
const model = valueAfter(doctorOutput, "Model:") ?? "unknown";
|
|
485
|
+
const apiKey = valueAfter(doctorOutput, "API Key:") ?? "unknown";
|
|
486
|
+
const baseline = valueAfter(doctorOutput, "Git Baseline:") ?? "unknown";
|
|
487
|
+
const framework = valueAfter(doctorOutput, "Framework:") ?? "(unknown)";
|
|
488
|
+
const runtime = valueAfter(doctorOutput, "Runtime:") ?? "(unknown)";
|
|
489
|
+
const packageManager = valueAfter(doctorOutput, "Package Manager:") ?? "(unknown)";
|
|
490
|
+
const memory = valueAfter(doctorOutput, "Project Memory:") ?? "unknown";
|
|
491
|
+
const task = valueAfter(reportOutput, "Task:") ?? "현재 task 없음";
|
|
492
|
+
const changed = valueAfter(reportOutput, "Changed:") ?? "none";
|
|
493
|
+
const check = valueAfter(reportOutput, "Check:") ?? "none";
|
|
494
|
+
const review = valueAfter(reportOutput, "Review:") ?? "none";
|
|
495
|
+
const next = valueAfter(reportOutput, "Next:") ?? valueAfter(doctorOutput, "Next:") ?? "dev-guard \"describe the next change\"";
|
|
496
|
+
const lines = [
|
|
497
|
+
`Project: ${framework}; runtime=${runtime}; package_manager=${packageManager}`,
|
|
498
|
+
`Provider: ${provider}; model=${model}; api_key=${apiKey}`,
|
|
499
|
+
`Git baseline: ${baseline}`,
|
|
500
|
+
`Memory: ${memory}`,
|
|
501
|
+
`Task: ${task}`,
|
|
502
|
+
`Changed: ${changed}`,
|
|
503
|
+
`Check: ${check}`,
|
|
504
|
+
`Review: ${review}`
|
|
505
|
+
];
|
|
506
|
+
if (baseline === "missing") {
|
|
507
|
+
lines.push('Warning: initial git baseline missing; run `git add . && git commit -m "initial commit"` to reduce noise.');
|
|
508
|
+
}
|
|
509
|
+
lines.push("");
|
|
510
|
+
lines.push("Next:");
|
|
511
|
+
lines.push(` ${next}`);
|
|
512
|
+
return lines;
|
|
513
|
+
}
|
|
514
|
+
function summarizeReviewOutput(lines) {
|
|
515
|
+
const status = valueAfter(lines, "status:") ?? "unknown";
|
|
516
|
+
const alignment = valueAfter(lines, "- Requirement Alignment Score:") ?? valueAfter(lines, "Requirement Alignment Score:");
|
|
517
|
+
const drift = valueAfter(lines, "- Drift Risk:") ?? valueAfter(lines, "Drift Risk:");
|
|
518
|
+
const scope = valueAfter(lines, "- Scope Safety:") ?? valueAfter(lines, "Scope Safety:");
|
|
519
|
+
const commitIndex = lines.findIndex((line) => line.includes("커밋 가능 여부"));
|
|
520
|
+
const commit = commitIndex >= 0 ? lines.slice(commitIndex + 1).find((line) => line.trim().startsWith("- "))?.trim() : undefined;
|
|
521
|
+
return [
|
|
522
|
+
`status: ${status}`,
|
|
523
|
+
alignment ? `requirement alignment: ${alignment}` : undefined,
|
|
524
|
+
drift ? `drift risk: ${drift}` : undefined,
|
|
525
|
+
scope ? `scope safety: ${scope}` : undefined,
|
|
526
|
+
commit ? `commit: ${commit.replace(/^- /, "")}` : undefined
|
|
527
|
+
].filter((line) => Boolean(line));
|
|
528
|
+
}
|
|
529
|
+
function summarizeUpdatePreviewOutput(lines) {
|
|
530
|
+
const summary = pickLines(lines, ["Mode:", "Summary:"]);
|
|
531
|
+
const docsIndex = lines.findIndex((line) => line.includes("Docs Update Preview:"));
|
|
532
|
+
const docLines = docsIndex >= 0
|
|
533
|
+
? lines
|
|
534
|
+
.slice(docsIndex + 1)
|
|
535
|
+
.filter((line) => /^- docs\//.test(line.trim()) || /^ - /.test(line))
|
|
536
|
+
.slice(0, 8)
|
|
537
|
+
: [];
|
|
538
|
+
const modified = lines.find((line) => line.includes("No files were modified."));
|
|
539
|
+
const applyIndex = lines.findIndex((line) => line.trim() === "Apply:");
|
|
540
|
+
const apply = applyIndex >= 0 ? lines[applyIndex + 1]?.trim() : undefined;
|
|
541
|
+
return [...summary, "Docs Update Preview:", ...docLines, modified, apply ? `Apply: ${apply}` : undefined].filter((line) => Boolean(line));
|
|
542
|
+
}
|
|
543
|
+
function valueAfter(lines, prefix) {
|
|
544
|
+
const line = lines.find((candidate) => candidate.trim().startsWith(prefix));
|
|
545
|
+
if (!line) {
|
|
546
|
+
return undefined;
|
|
547
|
+
}
|
|
548
|
+
return line.trim().slice(prefix.length).trim();
|
|
549
|
+
}
|
|
550
|
+
main().catch((error) => {
|
|
551
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
552
|
+
console.error(`dev-guard error: ${message}`);
|
|
553
|
+
process.exitCode = 1;
|
|
554
|
+
});
|
|
555
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function runInferTask(root: string, args: string[]): Promise<void>;
|