agenthud 0.2.2 → 0.3.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 +2 -2
- package/dist/index.js +30 -18
- package/package.json +1 -1
- package/scripts/save-test-results.ts +3 -3
package/README.md
CHANGED
|
@@ -44,14 +44,14 @@ npx agenthud
|
|
|
44
44
|
## Features
|
|
45
45
|
|
|
46
46
|
- **Git**: Branch, commits, line changes
|
|
47
|
-
- **Plan**: Progress, decisions from `.
|
|
47
|
+
- **Plan**: Progress, decisions from `.agenthud/plan.json`
|
|
48
48
|
- **Tests**: Results with outdated detection
|
|
49
49
|
|
|
50
50
|
## Setup
|
|
51
51
|
|
|
52
52
|
Add to your `CLAUDE.md`:
|
|
53
53
|
```markdown
|
|
54
|
-
Maintain `.
|
|
54
|
+
Maintain `.agenthud/` directory:
|
|
55
55
|
- Update `plan.json` when plan changes
|
|
56
56
|
- Update `decisions.json` for key decisions
|
|
57
57
|
```
|
package/dist/index.js
CHANGED
|
@@ -259,7 +259,7 @@ function WelcomePanel() {
|
|
|
259
259
|
return /* @__PURE__ */ jsxs4(Box4, { flexDirection: "column", borderStyle: "single", paddingX: 1, width: PANEL_WIDTH, children: [
|
|
260
260
|
/* @__PURE__ */ jsx4(Box4, { marginTop: -1, children: /* @__PURE__ */ jsx4(Text4, { children: " Welcome to agenthud " }) }),
|
|
261
261
|
/* @__PURE__ */ jsx4(Text4, { children: " " }),
|
|
262
|
-
/* @__PURE__ */ jsx4(Text4, { children: " No .
|
|
262
|
+
/* @__PURE__ */ jsx4(Text4, { children: " No .agenthud/ directory found." }),
|
|
263
263
|
/* @__PURE__ */ jsx4(Text4, { children: " " }),
|
|
264
264
|
/* @__PURE__ */ jsx4(Text4, { children: " Quick setup:" }),
|
|
265
265
|
/* @__PURE__ */ jsx4(Text4, { color: "cyan", children: " npx agenthud init" }),
|
|
@@ -340,7 +340,7 @@ function getUncommittedCount() {
|
|
|
340
340
|
// src/data/plan.ts
|
|
341
341
|
import { readFileSync as nodeReadFileSync } from "fs";
|
|
342
342
|
import { join } from "path";
|
|
343
|
-
var AGENT_DIR = ".
|
|
343
|
+
var AGENT_DIR = ".agenthud";
|
|
344
344
|
var PLAN_FILE = "plan.json";
|
|
345
345
|
var DECISIONS_FILE = "decisions.json";
|
|
346
346
|
var MAX_DECISIONS = 3;
|
|
@@ -376,7 +376,7 @@ function getPlanData(dir = process.cwd()) {
|
|
|
376
376
|
import { readFileSync as nodeReadFileSync2 } from "fs";
|
|
377
377
|
import { execSync as nodeExecSync2 } from "child_process";
|
|
378
378
|
import { join as join2 } from "path";
|
|
379
|
-
var AGENT_DIR2 = ".
|
|
379
|
+
var AGENT_DIR2 = ".agenthud";
|
|
380
380
|
var TEST_RESULTS_FILE = "test-results.json";
|
|
381
381
|
var readFileFn2 = (path) => nodeReadFileSync2(path, "utf-8");
|
|
382
382
|
var getHeadHashFn = () => {
|
|
@@ -568,7 +568,7 @@ var fs = {
|
|
|
568
568
|
};
|
|
569
569
|
var AGENT_STATE_SECTION = `## Agent State
|
|
570
570
|
|
|
571
|
-
Maintain \`.
|
|
571
|
+
Maintain \`.agenthud/\` directory:
|
|
572
572
|
- Update \`plan.json\` when plan changes
|
|
573
573
|
- Append to \`decisions.json\` for key decisions
|
|
574
574
|
`;
|
|
@@ -577,23 +577,35 @@ function runInit() {
|
|
|
577
577
|
created: [],
|
|
578
578
|
skipped: []
|
|
579
579
|
};
|
|
580
|
-
if (!fs.existsSync(".
|
|
581
|
-
fs.mkdirSync(".
|
|
582
|
-
result.created.push(".
|
|
580
|
+
if (!fs.existsSync(".agenthud")) {
|
|
581
|
+
fs.mkdirSync(".agenthud", { recursive: true });
|
|
582
|
+
result.created.push(".agenthud/");
|
|
583
583
|
} else {
|
|
584
|
-
result.skipped.push(".
|
|
584
|
+
result.skipped.push(".agenthud/");
|
|
585
585
|
}
|
|
586
|
-
if (!fs.existsSync(".
|
|
587
|
-
fs.writeFileSync(".
|
|
588
|
-
result.created.push(".
|
|
586
|
+
if (!fs.existsSync(".agenthud/plan.json")) {
|
|
587
|
+
fs.writeFileSync(".agenthud/plan.json", "{}\n");
|
|
588
|
+
result.created.push(".agenthud/plan.json");
|
|
589
589
|
} else {
|
|
590
|
-
result.skipped.push(".
|
|
590
|
+
result.skipped.push(".agenthud/plan.json");
|
|
591
591
|
}
|
|
592
|
-
if (!fs.existsSync(".
|
|
593
|
-
fs.writeFileSync(".
|
|
594
|
-
result.created.push(".
|
|
592
|
+
if (!fs.existsSync(".agenthud/decisions.json")) {
|
|
593
|
+
fs.writeFileSync(".agenthud/decisions.json", "[]\n");
|
|
594
|
+
result.created.push(".agenthud/decisions.json");
|
|
595
595
|
} else {
|
|
596
|
-
result.skipped.push(".
|
|
596
|
+
result.skipped.push(".agenthud/decisions.json");
|
|
597
|
+
}
|
|
598
|
+
if (!fs.existsSync(".gitignore")) {
|
|
599
|
+
fs.writeFileSync(".gitignore", ".agenthud/\n");
|
|
600
|
+
result.created.push(".gitignore");
|
|
601
|
+
} else {
|
|
602
|
+
const content = fs.readFileSync(".gitignore");
|
|
603
|
+
if (!content.includes(".agenthud/")) {
|
|
604
|
+
fs.appendFileSync(".gitignore", "\n.agenthud/\n");
|
|
605
|
+
result.created.push(".gitignore");
|
|
606
|
+
} else {
|
|
607
|
+
result.skipped.push(".gitignore");
|
|
608
|
+
}
|
|
597
609
|
}
|
|
598
610
|
if (!fs.existsSync("CLAUDE.md")) {
|
|
599
611
|
fs.writeFileSync("CLAUDE.md", AGENT_STATE_SECTION);
|
|
@@ -624,11 +636,11 @@ if (options.command === "init") {
|
|
|
624
636
|
result.skipped.forEach((file) => console.log(` ${file}`));
|
|
625
637
|
}
|
|
626
638
|
console.log("\nNext steps:");
|
|
627
|
-
console.log(" 1. Edit .
|
|
639
|
+
console.log(" 1. Edit .agenthud/plan.json to add your project plan");
|
|
628
640
|
console.log(" 2. Run: npx agenthud\n");
|
|
629
641
|
process.exit(0);
|
|
630
642
|
}
|
|
631
|
-
var agentDirExists = existsSync(".
|
|
643
|
+
var agentDirExists = existsSync(".agenthud");
|
|
632
644
|
if (options.mode === "watch") {
|
|
633
645
|
clearScreen();
|
|
634
646
|
}
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* npm run test:save
|
|
8
8
|
*
|
|
9
9
|
* Output:
|
|
10
|
-
* .
|
|
10
|
+
* .agenthud/test-results.json
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import { execSync } from "child_process";
|
|
@@ -106,8 +106,8 @@ function main(): void {
|
|
|
106
106
|
failures: extractFailures(vitestResult),
|
|
107
107
|
};
|
|
108
108
|
|
|
109
|
-
// Ensure .
|
|
110
|
-
const agentDir = join(process.cwd(), ".
|
|
109
|
+
// Ensure .agenthud directory exists
|
|
110
|
+
const agentDir = join(process.cwd(), ".agenthud");
|
|
111
111
|
if (!existsSync(agentDir)) {
|
|
112
112
|
mkdirSync(agentDir, { recursive: true });
|
|
113
113
|
}
|