const requests = process.argv.slice(3);
const input = `${requests.join("\n")}\n`;
const child = Bun.spawnSync(["./target/debug/tasklens-cli.exe", "--vault", process.argv[2]], {
stdin: new TextEncoder().encode(input),
stdout: "pipe",
stderr: "inherit",
});
const lines = new TextDecoder().decode(child.stdout).trim().split("\n").map((line) => JSON.parse(line));
for (const response of lines) {
if (!response.ok) {
console.log("ERROR:", response.error);
continue;
}
const data = response.data;
if (data.entries) {
const byType = {};
for (const entry of data.entries) {
const key = entry.noteType ?? "(无 type)";
byType[key] = (byType[key] ?? 0) + 1;
}
console.log("root:", data.root);
console.log("entries:", data.entries.length, JSON.stringify(byType));
for (const entry of data.entries.filter((item) => item.noteType === "任务").slice(0, 5)) {
console.log(
` ${entry.path} | ${entry.title} | status=${entry.frontmatter.status} | priority=${entry.frontmatter.priority} | open=${entry.openTasks} | links=${entry.links.join(",")}`,
);
}
const logs = data.entries.filter((entry) => entry.noteType === "日志");
console.log(" logs:", logs.length, "| latest:", logs[0]?.path);
const templates = data.entries.filter((entry) => entry.isTemplate);
console.log(" templates flagged:", templates.length, templates.map((entry) => entry.path).join(", "));
} else {
console.log(JSON.stringify(data).slice(0, 600));
}
}