import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";

export default function (pi: ExtensionAPI) {
  pi.on("session_start", async (_event, ctx) => {
    try {
      const { stdout, stderr, code } = await pi.exec("make", ["test"]);
      const output = stdout + stderr;

      if (code === 0) {
        ctx.ui.notify("make test passed", "info");
      } else {
        ctx.ui.notify(`make test failed (exit ${code})`, "error");
      }

      // Also send the output as a message so it's visible in the session
      pi.sendMessage({
        customType: "run-make-test",
        content: [
          {
            type: "text",
            text: `Here's the result of running \`make test\`:\n\n\`\`\`\n${output}\`\`\``,
          },
        ],
        display: true,
      }, { deliverAs: "followUp" });
    } catch (error) {
      const message = error instanceof Error ? error.message : String(error);
      pi.sendMessage({
        customType: "run-make-test",
        content: [
          { type: "text", text: `Error running make test: ${message}` },
        ],
        display: true,
      }, { deliverAs: "followUp" });
    }
  });
}
