yg-team-cli 2.1.7 → 2.1.9
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/dist/cli.js +69 -3
- package/dist/cli.js.map +1 -1
- package/dist/index.js +69 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -529,8 +529,7 @@ ${promptText}`;
|
|
|
529
529
|
}).join("\n\n");
|
|
530
530
|
await fs2.writeFile(tempFile, fullPrompt, "utf-8");
|
|
531
531
|
const result = await execa("claude", ["--dangerously-skip-permissions", tempFile], {
|
|
532
|
-
stdio: "inherit"
|
|
533
|
-
timeout: options?.timeout || 3e5
|
|
532
|
+
stdio: "inherit"
|
|
534
533
|
});
|
|
535
534
|
return result.stdout || "";
|
|
536
535
|
} finally {
|
|
@@ -2459,6 +2458,7 @@ async function executeDevelopment(specFile, milestone, todo) {
|
|
|
2459
2458
|
logger.separator("\u2500", 60);
|
|
2460
2459
|
logger.newLine();
|
|
2461
2460
|
await generateSessionLog(specFile, milestone, todo, taskDescription, result);
|
|
2461
|
+
await askAndUpdateSpecStatus(specFile, milestone, todo);
|
|
2462
2462
|
logger.header("\u5F00\u53D1\u4EFB\u52A1\u5B8C\u6210!");
|
|
2463
2463
|
logger.success("\u4F1A\u8BDD\u65E5\u5FD7\u5DF2\u4FDD\u5B58");
|
|
2464
2464
|
logger.newLine();
|
|
@@ -2652,6 +2652,72 @@ ${result}
|
|
|
2652
2652
|
`;
|
|
2653
2653
|
await FileUtils.write(logFile, content);
|
|
2654
2654
|
}
|
|
2655
|
+
async function askAndUpdateSpecStatus(specFile, milestone, todo) {
|
|
2656
|
+
try {
|
|
2657
|
+
const { shouldUpdate } = await inquirer3.prompt([
|
|
2658
|
+
{
|
|
2659
|
+
type: "confirm",
|
|
2660
|
+
name: "shouldUpdate",
|
|
2661
|
+
message: "\u4EFB\u52A1\u662F\u5426\u5DF2\u5B8C\u6210\uFF1F\u662F\u5426\u66F4\u65B0 spec \u6587\u4EF6\u4E2D\u7684 todo \u72B6\u6001\uFF1F",
|
|
2662
|
+
default: true
|
|
2663
|
+
}
|
|
2664
|
+
]);
|
|
2665
|
+
if (!shouldUpdate) {
|
|
2666
|
+
logger.info("\u8DF3\u8FC7\u66F4\u65B0 spec \u6587\u4EF6");
|
|
2667
|
+
return;
|
|
2668
|
+
}
|
|
2669
|
+
const content = await FileUtils.read(specFile);
|
|
2670
|
+
const lines = content.split("\n");
|
|
2671
|
+
let inTargetMilestone = false;
|
|
2672
|
+
let targetTodoIndex = -1;
|
|
2673
|
+
let milestoneIndex = -1;
|
|
2674
|
+
for (let i = 0; i < lines.length; i++) {
|
|
2675
|
+
const line = lines[i];
|
|
2676
|
+
if (milestone !== "\u6574\u4E2A spec" && line.includes(milestone)) {
|
|
2677
|
+
inTargetMilestone = true;
|
|
2678
|
+
milestoneIndex = i;
|
|
2679
|
+
continue;
|
|
2680
|
+
}
|
|
2681
|
+
if (inTargetMilestone) {
|
|
2682
|
+
if (line.match(/^###\s+Milestone/)) {
|
|
2683
|
+
break;
|
|
2684
|
+
}
|
|
2685
|
+
if (todo !== "\u5168\u90E8\u529F\u80FD" && todo !== "\u5168\u90E8\u4EFB\u52A1") {
|
|
2686
|
+
const todoMatch = line.match(/^-\s+\[[ x ]\]\s*(.+)/);
|
|
2687
|
+
if (todoMatch && todoMatch[1].trim() === todo) {
|
|
2688
|
+
targetTodoIndex = i;
|
|
2689
|
+
break;
|
|
2690
|
+
}
|
|
2691
|
+
}
|
|
2692
|
+
}
|
|
2693
|
+
}
|
|
2694
|
+
if (targetTodoIndex !== -1) {
|
|
2695
|
+
const line = lines[targetTodoIndex];
|
|
2696
|
+
lines[targetTodoIndex] = line.replace(/^-\s+\[ \]/, "- [x]");
|
|
2697
|
+
logger.success(`\u5DF2\u6807\u8BB0 todo \u4E3A\u5B8C\u6210: ${todo}`);
|
|
2698
|
+
} else if (todo === "\u5168\u90E8\u529F\u80FD" || todo === "\u5168\u90E8\u4EFB\u52A1") {
|
|
2699
|
+
let updatedCount = 0;
|
|
2700
|
+
for (let i = milestoneIndex + 1; i < lines.length; i++) {
|
|
2701
|
+
const line = lines[i];
|
|
2702
|
+
if (line.match(/^###\s+Milestone/)) {
|
|
2703
|
+
break;
|
|
2704
|
+
}
|
|
2705
|
+
if (line.match(/^-\s+\[ \]/)) {
|
|
2706
|
+
lines[i] = line.replace(/^-\s+\[ \]/, "- [x]");
|
|
2707
|
+
updatedCount++;
|
|
2708
|
+
}
|
|
2709
|
+
}
|
|
2710
|
+
logger.success(`\u5DF2\u6807\u8BB0 ${updatedCount} \u4E2A todos \u4E3A\u5B8C\u6210`);
|
|
2711
|
+
} else {
|
|
2712
|
+
logger.warn("\u672A\u627E\u5230\u5BF9\u5E94\u7684 todo \u9879");
|
|
2713
|
+
return;
|
|
2714
|
+
}
|
|
2715
|
+
await FileUtils.write(specFile, lines.join("\n"));
|
|
2716
|
+
logger.success("Spec \u6587\u4EF6\u5DF2\u66F4\u65B0");
|
|
2717
|
+
} catch (error) {
|
|
2718
|
+
logger.warn(`\u66F4\u65B0 spec \u6587\u4EF6\u5931\u8D25: ${error}`);
|
|
2719
|
+
}
|
|
2720
|
+
}
|
|
2655
2721
|
var devCommand;
|
|
2656
2722
|
var init_dev = __esm({
|
|
2657
2723
|
"src/commands/dev.ts"() {
|
|
@@ -5867,7 +5933,7 @@ var init_index = __esm({
|
|
|
5867
5933
|
init_config();
|
|
5868
5934
|
init_diff();
|
|
5869
5935
|
program = new Command16();
|
|
5870
|
-
program.name("team-cli").description("AI-Native \u56E2\u961F\u7814\u53D1\u811A\u624B\u67B6").version("2.1.
|
|
5936
|
+
program.name("team-cli").description("AI-Native \u56E2\u961F\u7814\u53D1\u811A\u624B\u67B6").version("2.1.9");
|
|
5871
5937
|
program.option("-v, --verbose", "\u8BE6\u7EC6\u8F93\u51FA\u6A21\u5F0F").option("--debug", "\u8C03\u8BD5\u6A21\u5F0F");
|
|
5872
5938
|
program.addCommand(initCommand);
|
|
5873
5939
|
program.addCommand(splitPrdCommand);
|