diff --git a/README.md b/README.md index 0d796a5..cb9db32 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ Install the git-review CLI separately and ensure `git-review` is on `PATH`. The package does not install the CLI or tuicr. Remove any manually installed copies of the git-review extension or skill to avoid loading them twice. -The extension source lives in [`pi/extensions/git-review.ts`](pi/extensions/git-review.ts). +The extension source lives in [`pi/extensions/git-review/`](pi/extensions/git-review/), with `index.ts` as its entry point and tests in `tests/`. It publishes review counts for other extensions and asks the model to use the git-review skill when feedback exists after an agent run. It defers model notices while a review process holds the shared worktree lock. Deferred feedback remains eligible for notification after the review ends. diff --git a/mise.toml b/mise.toml index ac1091e..e5bbb06 100644 --- a/mise.toml +++ b/mise.toml @@ -16,7 +16,7 @@ run = [{ task = "fixers" }, { task = "tests" }, { task = "linters" }] [tasks.ci-tests] alias = "test" description = "Run tests (with the race detector)" -run = ["go test -race -shuffle=on ./...", "node --test pi/extensions/*.test.ts"] +run = ["go test -race -shuffle=on ./...", "node --test pi/extensions/*/tests/*.test.ts"] [tasks.functional-tests] description = "Test the compiled CLI and real tuicr through pseudo-terminals" @@ -47,7 +47,7 @@ run = [ [tasks.tests] alias = "test" description = "Run tests (with the race detector)" -run = ["go test -cover ./...", "node --test pi/extensions/*.test.ts"] +run = ["go test -cover ./...", "node --test pi/extensions/*/tests/*.test.ts"] ############# # Fix Tasks # diff --git a/package.json b/package.json index 261aae0..ee15320 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "description": "Pi integration and agent skill for git-review commit reviews", "keywords": ["pi-package"], "pi": { - "extensions": ["./pi/extensions/git-review.ts"], + "extensions": ["./pi/extensions/git-review/index.ts"], "skills": ["./skills/git-review"], "prompts": [], "themes": [] diff --git a/pi/extensions/git-review.ts b/pi/extensions/git-review/index.ts similarity index 99% rename from pi/extensions/git-review.ts rename to pi/extensions/git-review/index.ts index f762283..792e984 100644 --- a/pi/extensions/git-review.ts +++ b/pi/extensions/git-review/index.ts @@ -28,7 +28,7 @@ import { GIT_REVIEW_STATUS_EVENT, type GitReviewStatus, type GitReviewStatusRequest, -} from "./git-review/support.ts"; +} from "./support.ts"; const GIT_TIMEOUT_MS = 5_000; const STATUS_TIMEOUT_MS = 15_000; diff --git a/pi/extensions/git-review-support.test.ts b/pi/extensions/git-review/tests/git-review-support.test.ts similarity index 95% rename from pi/extensions/git-review-support.test.ts rename to pi/extensions/git-review/tests/git-review-support.test.ts index 01f75cc..559fe7d 100644 --- a/pi/extensions/git-review-support.test.ts +++ b/pi/extensions/git-review/tests/git-review-support.test.ts @@ -1,6 +1,6 @@ import assert from "node:assert/strict"; import test from "node:test"; -import { parseGitReviewStatus } from "./git-review/support.ts"; +import { parseGitReviewStatus } from "../support.ts"; const summary = [ { state: "needs_review", count: 0 }, diff --git a/pi/extensions/git-review.test.ts b/pi/extensions/git-review/tests/git-review.test.ts similarity index 99% rename from pi/extensions/git-review.test.ts rename to pi/extensions/git-review/tests/git-review.test.ts index 6898722..cfe79e4 100644 --- a/pi/extensions/git-review.test.ts +++ b/pi/extensions/git-review/tests/git-review.test.ts @@ -3,8 +3,8 @@ import { EventEmitter } from "node:events"; import test from "node:test"; import { setImmediate } from "node:timers/promises"; import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent"; -import gitReview from "./git-review.ts"; -import { MISE_AFTER_ON_STOP_EVENT, MISE_COORDINATES_EVENT } from "./git-review/support.ts"; +import gitReview from "../index.ts"; +import { MISE_AFTER_ON_STOP_EVENT, MISE_COORDINATES_EVENT } from "../support.ts"; function harness(mode: ExtensionContext["mode"] = "tui") { const events = new EventEmitter();