@jjchill/probity-rules 0.4.10 → 0.4.12
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/CHANGELOG.md +57 -0
- package/dist/rules/commit-target.d.ts.map +1 -1
- package/dist/rules/commit-target.js +3 -2
- package/dist/rules/commit-target.js.map +1 -1
- package/dist/rules/gates.d.ts +5 -4
- package/dist/rules/gates.d.ts.map +1 -1
- package/dist/rules/gates.js +16 -8
- package/dist/rules/gates.js.map +1 -1
- package/dist/rules/kotlin.d.ts +1 -1
- package/dist/rules/kotlin.d.ts.map +1 -1
- package/package.json +1 -1
- package/scripts/probity-claude.mjs +96 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,62 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.12
|
|
4
|
+
|
|
5
|
+
`probity-claude` now runs Probity in the worktree a session is working
|
|
6
|
+
in, so rules judge that tree's specs and files (#66).
|
|
7
|
+
|
|
8
|
+
- **What went wrong.** The documented hook is
|
|
9
|
+
`cd "$CLAUDE_PROJECT_DIR" && ./node_modules/.bin/probity-claude`.
|
|
10
|
+
After a session moves into a worktree (`EnterWorktree`, or an
|
|
11
|
+
`isolation: "worktree"` sub-agent), `CLAUDE_PROJECT_DIR` still names
|
|
12
|
+
the main checkout. Probity finds `probity.config.ts` by searching
|
|
13
|
+
upward from its working directory, so it loaded the main checkout's
|
|
14
|
+
config, and `ROOT`, `specsDir` and `glossaryPath` all pointed there.
|
|
15
|
+
In #66 the spec-first rule blocked an acceptance test whose
|
|
16
|
+
`Covers:` scenario existed only in the worktree's `specs/`
|
|
17
|
+
submodule, and named the main checkout's `specs/features`.
|
|
18
|
+
- **Now:** the wrapper finds the git worktree the action targets: the
|
|
19
|
+
edited file's location, or for a command its `git -C <dir>` or
|
|
20
|
+
leading `cd <dir> &&`, else the session's `cwd`. When that worktree
|
|
21
|
+
is nested inside the project and has its own `probity.config.*`, the
|
|
22
|
+
wrapper starts Probity there. Its config's imports resolve from the
|
|
23
|
+
project's `node_modules` (one level up the folder tree), so the
|
|
24
|
+
worktree needs no install. Work in the main checkout, worktrees
|
|
25
|
+
without a Probity config, and paths outside the project run as before.
|
|
26
|
+
- A relative `--debug <path>` is anchored to the project directory, so
|
|
27
|
+
the debug log stays in one place.
|
|
28
|
+
- Only hooks that run `probity-claude` get this. A worktree outside the
|
|
29
|
+
project folder still runs against the project.
|
|
30
|
+
- Consumers: no config change. The worktree's own `probity.config.ts`
|
|
31
|
+
(from its branch) is the one that runs.
|
|
32
|
+
|
|
33
|
+
## 0.4.11
|
|
34
|
+
|
|
35
|
+
The commit-on-green gate now catches every form of `git commit`, and
|
|
36
|
+
scopes a worktree's commit by that worktree's staged files (#63).
|
|
37
|
+
|
|
38
|
+
- **What went wrong.** `requireGreenTestRun` recognized a commit only
|
|
39
|
+
by the literal text `git commit`. `git -C <dir> commit` and
|
|
40
|
+
`git -c key=value commit` never matched, so a commit written either
|
|
41
|
+
way skipped the "tests must be green" check entirely. Agents often
|
|
42
|
+
write `git -C <path> commit` to avoid a `cd`. With `enforceForPaths`
|
|
43
|
+
set, the gate also listed staged files in the hook's checkout. A
|
|
44
|
+
commit made inside a linked worktree nested in the project
|
|
45
|
+
(`.claude/worktrees/<name>/`) was scoped by the main checkout's
|
|
46
|
+
staged files, usually none, and passed as "no code touched".
|
|
47
|
+
- **Now:** the gate matches commits with the shared `GIT_COMMIT`
|
|
48
|
+
pattern the marker and parity gates use. With `enforceForPaths`, it
|
|
49
|
+
lists the staged files of the tree the commit is made in. The
|
|
50
|
+
transcript check (a green run after the last write) is per session,
|
|
51
|
+
so it is unchanged.
|
|
52
|
+
- `GIT_COMMIT` no longer matches plumbing commands that only start
|
|
53
|
+
with the word, such as `git commit-tree` and `git commit-graph`. This
|
|
54
|
+
applies to every commit gate.
|
|
55
|
+
- `listCommitFiles` (the test hook option) now also receives the root
|
|
56
|
+
of the tree being committed as a second argument, in
|
|
57
|
+
`requireGreenTestRun` and the Kotlin wrapper. One-argument functions
|
|
58
|
+
keep working.
|
|
59
|
+
|
|
3
60
|
## 0.4.10
|
|
4
61
|
|
|
5
62
|
The spec↔test parity gate now checks the worktree a commit is made in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit-target.d.ts","sourceRoot":"","sources":["../../rules/commit-target.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"commit-target.d.ts","sourceRoot":"","sources":["../../rules/commit-target.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAKH,eAAO,MAAM,UAAU,QAAmE,CAAA;AAE1F,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM9C;AAID,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQvD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUtD;AAED,6DAA6D;AAC7D,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAG/D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM7E"}
|
|
@@ -9,8 +9,9 @@ import { isAbsolute, relative, resolve, sep } from 'node:path';
|
|
|
9
9
|
* tree's files (issues #39, #57).
|
|
10
10
|
*/
|
|
11
11
|
// `git commit`, including global options before the subcommand
|
|
12
|
-
// (`git -C <dir> commit`, `git -c key=value commit`)
|
|
13
|
-
|
|
12
|
+
// (`git -C <dir> commit`, `git -c key=value commit`), but not plumbing
|
|
13
|
+
// that merely starts with the word (`git commit-tree`, `git commit-graph`).
|
|
14
|
+
export const GIT_COMMIT = /\bgit(?:\s+-[Cc]\s+(?:"[^"]*"|'[^']*'|\S+))*\s+commit(?![\w-])/;
|
|
14
15
|
export function canonical(path) {
|
|
15
16
|
try {
|
|
16
17
|
return realpathSync(path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit-target.js","sourceRoot":"","sources":["../../rules/commit-target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAE9D;;;;;;GAMG;AAEH,+DAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"commit-target.js","sourceRoot":"","sources":["../../rules/commit-target.ts"],"names":[],"mappings":"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"}
|
package/dist/rules/gates.d.ts
CHANGED
|
@@ -74,8 +74,8 @@ export declare function transcriptLimitViolation(error: unknown): RuleResult;
|
|
|
74
74
|
* wrapper script is invisible — rerun the suite in-session, and keep
|
|
75
75
|
* the CI mirror for human commits.
|
|
76
76
|
*
|
|
77
|
-
* Applies to:
|
|
78
|
-
* no AI call.
|
|
77
|
+
* Applies to: `git commit` commands, including `git -C <dir> commit`
|
|
78
|
+
* and `git -c key=value commit`. Deterministic — no AI call.
|
|
79
79
|
*
|
|
80
80
|
* @param options.command — regex matching a test invocation.
|
|
81
81
|
* @param options.commandPredicate — optional additive filter over the
|
|
@@ -104,7 +104,8 @@ export declare function transcriptLimitViolation(error: unknown): RuleResult;
|
|
|
104
104
|
* not session history); any listing error falls through to
|
|
105
105
|
* enforcing (fail safe).
|
|
106
106
|
* @param options.listCommitFiles — injectable staged-file lister
|
|
107
|
-
* (defaults to reading git's staged set); present for testing.
|
|
107
|
+
* (defaults to reading git's staged set); present for testing. Its
|
|
108
|
+
* second argument is the root of the tree being committed.
|
|
108
109
|
* @param options.reason — appended to either deny path to name the
|
|
109
110
|
* suite, accepted forms, and any setup it needs.
|
|
110
111
|
*/
|
|
@@ -116,7 +117,7 @@ export declare function requireGreenTestRun(options: {
|
|
|
116
117
|
failurePattern: RegExp;
|
|
117
118
|
extraFailurePredicate?: (command: string, output: string) => boolean;
|
|
118
119
|
enforceForPaths?: RegExp;
|
|
119
|
-
listCommitFiles?: (command: string) => string[];
|
|
120
|
+
listCommitFiles?: (command: string, cwd: string) => string[];
|
|
120
121
|
reason?: string;
|
|
121
122
|
}): Rule;
|
|
122
123
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../../rules/gates.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAU,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../../rules/gates.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAU,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAI3E;;;;;;;;;;;;GAYG;AAEH,uEAAuE;AACvE,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAQ7D,iEAAiE;AACjE,wBAAsB,kBAAkB,CACtC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EACzC,GAAG,EAAE,WAAW,GAAG,SAAS,EAC5B,QAAQ,EAAE,YAAY,EAAE,GACvB,OAAO,CAAC,MAAM,EAAE,CAAC,CAcnB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,EAAE,YAAY,EAOpD,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAC/C,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAqBP;AA4BD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAgBnE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAA;IAC/C,cAAc,EAAE,MAAM,CAAA;IACtB,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;IACpE,cAAc,EAAE,MAAM,CAAA;IACtB,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;IACpE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,CAAA;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,IAAI,CA0EP;AA0CD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IACjD,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,IAAI,CA+CP;AAkBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAYvD;AA+DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5C,IAAI,CAqEN"}
|
package/dist/rules/gates.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readdirSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { execFileSync } from 'node:child_process';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
+
import { GIT_COMMIT, gitToplevel, nestedCommitTree } from './commit-target.js';
|
|
4
5
|
function countMatches(content, pattern) {
|
|
5
6
|
let count = 0;
|
|
6
7
|
for (const _ of content.matchAll(pattern))
|
|
@@ -71,13 +72,14 @@ export function forbidNewAmbientEffects(options) {
|
|
|
71
72
|
};
|
|
72
73
|
}
|
|
73
74
|
/**
|
|
74
|
-
* Files the pending commit will record,
|
|
75
|
+
* Files the pending commit will record, relative to the root of the
|
|
76
|
+
* tree being committed (`cwd`). Reads the
|
|
75
77
|
* staged set (`git diff --cached --name-only`); for a `git commit`
|
|
76
78
|
* with `-a`/`-am`/`--all` it also folds in modified-but-unstaged
|
|
77
79
|
* tracked files. Throws if git is unavailable — callers fail safe.
|
|
78
80
|
*/
|
|
79
|
-
function defaultListCommitFiles(command) {
|
|
80
|
-
const run = (args) => execFileSync('git', args, { cwd
|
|
81
|
+
function defaultListCommitFiles(command, cwd = process.cwd()) {
|
|
82
|
+
const run = (args) => execFileSync('git', args, { cwd, encoding: 'utf8' })
|
|
81
83
|
.split('\n')
|
|
82
84
|
.map((line) => line.trim())
|
|
83
85
|
.filter((line) => line.length > 0);
|
|
@@ -130,8 +132,8 @@ export function transcriptLimitViolation(error) {
|
|
|
130
132
|
* wrapper script is invisible — rerun the suite in-session, and keep
|
|
131
133
|
* the CI mirror for human commits.
|
|
132
134
|
*
|
|
133
|
-
* Applies to:
|
|
134
|
-
* no AI call.
|
|
135
|
+
* Applies to: `git commit` commands, including `git -C <dir> commit`
|
|
136
|
+
* and `git -c key=value commit`. Deterministic — no AI call.
|
|
135
137
|
*
|
|
136
138
|
* @param options.command — regex matching a test invocation.
|
|
137
139
|
* @param options.commandPredicate — optional additive filter over the
|
|
@@ -160,7 +162,8 @@ export function transcriptLimitViolation(error) {
|
|
|
160
162
|
* not session history); any listing error falls through to
|
|
161
163
|
* enforcing (fail safe).
|
|
162
164
|
* @param options.listCommitFiles — injectable staged-file lister
|
|
163
|
-
* (defaults to reading git's staged set); present for testing.
|
|
165
|
+
* (defaults to reading git's staged set); present for testing. Its
|
|
166
|
+
* second argument is the root of the tree being committed.
|
|
164
167
|
* @param options.reason — appended to either deny path to name the
|
|
165
168
|
* suite, accepted forms, and any setup it needs.
|
|
166
169
|
*/
|
|
@@ -169,15 +172,20 @@ export function requireGreenTestRun(options) {
|
|
|
169
172
|
return async function requireGreenTestRun(action, ctx) {
|
|
170
173
|
if (action.kind !== 'command')
|
|
171
174
|
return { kind: 'pass' };
|
|
172
|
-
if (
|
|
175
|
+
if (!GIT_COMMIT.test(action.command))
|
|
173
176
|
return { kind: 'pass' };
|
|
174
177
|
// Scope the gate to commits that stage code the suite validates.
|
|
175
178
|
// On any error listing files, fall through and enforce (fail safe).
|
|
176
179
|
if (options.enforceForPaths) {
|
|
177
180
|
const pattern = options.enforceForPaths;
|
|
181
|
+
// A commit inside a git tree nested in the project (a linked
|
|
182
|
+
// worktree at .claude/worktrees/<name>) is scoped by that tree's
|
|
183
|
+
// staged files, not the project's (issue #63).
|
|
184
|
+
const cwd = process.cwd();
|
|
185
|
+
const tree = nestedCommitTree(action.command, gitToplevel(cwd) ?? cwd) ?? cwd;
|
|
178
186
|
let files;
|
|
179
187
|
try {
|
|
180
|
-
files = listCommitFiles(action.command);
|
|
188
|
+
files = listCommitFiles(action.command, tree);
|
|
181
189
|
}
|
|
182
190
|
catch {
|
|
183
191
|
files = undefined;
|
package/dist/rules/gates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gates.js","sourceRoot":"","sources":["../../rules/gates.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gates.js","sourceRoot":"","sources":["../../rules/gates.ts"],"names":[],"mappings":"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"}
|
package/dist/rules/kotlin.d.ts
CHANGED
|
@@ -150,7 +150,7 @@ export declare function requireGreenTestRun(options: {
|
|
|
150
150
|
successPattern?: RegExp;
|
|
151
151
|
failurePattern?: RegExp;
|
|
152
152
|
enforceForPaths?: RegExp;
|
|
153
|
-
listCommitFiles?: (command: string) => string[];
|
|
153
|
+
listCommitFiles?: (command: string, cwd: string) => string[];
|
|
154
154
|
reason?: string;
|
|
155
155
|
}): Rule;
|
|
156
156
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../rules/kotlin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAU,IAAI,EAA2B,MAAM,gBAAgB,CAAA;AAE3E,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,YAAY,CAAA;AAGnB;;;;;;;;;GASG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,QACoV,CAAA;AAE9X;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QACoB,CAAA;AAExD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,QAC+D,CAAA;AAsB/F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAsBxC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;CAAO,GAC7D,IAAI,CAON;AAwCD;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,QACc,CAAA;AAkYrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/D,IAAI,CA2GN;AAwMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../rules/kotlin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jjchill/probity-rules",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.12",
|
|
4
4
|
"description": "Versioned Probity rule presets and CLI tooling for the agent-skills catalog (test-driven-development, ports-and-adapters, acceptance-testing, spec-test parity, ubiquitous-language) — see hooks/PROBITY.md.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -24,6 +24,17 @@
|
|
|
24
24
|
* deletes the copy when Probity exits. The gates only need recent
|
|
25
25
|
* events: the last test run, the red before a green.
|
|
26
26
|
*
|
|
27
|
+
* And it runs Probity in the right tree (issue #66). The hook `cd`s to
|
|
28
|
+
* $CLAUDE_PROJECT_DIR, which still names the main checkout after a
|
|
29
|
+
* session moves into a worktree (EnterWorktree, or an `isolation:
|
|
30
|
+
* "worktree"` sub-agent). Probity finds its config by searching upward
|
|
31
|
+
* from its working directory, so every rule judged the main checkout's
|
|
32
|
+
* specs and files. When the edited file (or, for a command, the
|
|
33
|
+
* session's cwd) is inside a git worktree nested in the project that
|
|
34
|
+
* has its own probity.config.*, the wrapper starts Probity there. That
|
|
35
|
+
* config's imports still resolve from the project's node_modules, one
|
|
36
|
+
* directory level up the tree.
|
|
37
|
+
*
|
|
27
38
|
* Use it in place of the probity bin in `.claude/settings.json`:
|
|
28
39
|
*
|
|
29
40
|
* "command": "cd \"$CLAUDE_PROJECT_DIR\" && ./node_modules/.bin/probity-claude"
|
|
@@ -47,7 +58,7 @@ import {
|
|
|
47
58
|
} from 'node:fs'
|
|
48
59
|
import { createRequire } from 'node:module'
|
|
49
60
|
import { tmpdir } from 'node:os'
|
|
50
|
-
import { basename, dirname, join } from 'node:path'
|
|
61
|
+
import { basename, dirname, isAbsolute, join, relative, resolve, sep } from 'node:path'
|
|
51
62
|
import { fileURLToPath } from 'node:url'
|
|
52
63
|
|
|
53
64
|
/** The sub-agent transcript for a payload, or null to keep the original. */
|
|
@@ -134,6 +145,75 @@ export function preparePayload(raw, limits = {}) {
|
|
|
134
145
|
}
|
|
135
146
|
}
|
|
136
147
|
|
|
148
|
+
const CONFIG_NAMES = ['ts', 'mts', 'js', 'mjs'].map((ext) => `probity.config.${ext}`)
|
|
149
|
+
|
|
150
|
+
function canonical(path) {
|
|
151
|
+
// Resolve symlinks on the longest existing prefix (a file being
|
|
152
|
+
// created does not exist yet), so paths compare like the project dir.
|
|
153
|
+
let head = resolve(path)
|
|
154
|
+
const tail = []
|
|
155
|
+
while (!existsSync(head) && dirname(head) !== head) {
|
|
156
|
+
tail.unshift(basename(head))
|
|
157
|
+
head = dirname(head)
|
|
158
|
+
}
|
|
159
|
+
try {
|
|
160
|
+
head = realpathSync(head)
|
|
161
|
+
} catch {
|
|
162
|
+
// keep the resolved path
|
|
163
|
+
}
|
|
164
|
+
return join(head, ...tail)
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function isBelow(parent, child) {
|
|
168
|
+
const path = relative(parent, child)
|
|
169
|
+
return path !== '' && path !== '..' && !path.startsWith(`..${sep}`) && !isAbsolute(path)
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// The directory a command explicitly acts in: `git -C <dir>`, else a
|
|
173
|
+
// leading `cd <dir> &&`; null when it names none. Mirrors the commit
|
|
174
|
+
// gates' commitDirectory (rules/commit-target.ts), so a worktree session
|
|
175
|
+
// that commits in the main checkout is judged there.
|
|
176
|
+
function commandDirectory(command) {
|
|
177
|
+
const unquote = (value) => value.replace(/^(['"])(.*)\1$/, '$2')
|
|
178
|
+
const gitDashC = command.match(/\bgit\s+-C\s+("[^"]+"|'[^']+'|\S+)/)
|
|
179
|
+
const cd = command.match(/^\s*cd\s+("[^"]+"|'[^']+'|[^\s;&|]+)\s*(?:&&|;)/)
|
|
180
|
+
const target = gitDashC?.[1] ?? cd?.[1]
|
|
181
|
+
return target ? unquote(target) : null
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* The git worktree to run Probity in for this payload, or null to stay
|
|
186
|
+
* in `projectDir`: the nearest directory holding `.git` above the edited
|
|
187
|
+
* file (for a command, the session's cwd), when it lies below
|
|
188
|
+
* `projectDir` and has its own Probity config. A command's directory is
|
|
189
|
+
* its `git -C <dir>` or leading `cd <dir> &&`, else the session's cwd.
|
|
190
|
+
*/
|
|
191
|
+
export function probityDirectory(payload, projectDir) {
|
|
192
|
+
const input = payload?.tool_input ?? {}
|
|
193
|
+
const cwd = typeof payload?.cwd === 'string' ? payload.cwd : null
|
|
194
|
+
const file = [input.file_path, input.notebook_path].find((value) => typeof value === 'string')
|
|
195
|
+
const base = cwd ?? projectDir
|
|
196
|
+
let start
|
|
197
|
+
if (file) start = dirname(isAbsolute(file) ? file : resolve(base, file))
|
|
198
|
+
else if (typeof input.command === 'string') start = resolve(base, commandDirectory(input.command) ?? '.')
|
|
199
|
+
else if (cwd) start = cwd
|
|
200
|
+
else return null
|
|
201
|
+
const project = canonical(projectDir)
|
|
202
|
+
for (let dir = canonical(start); isBelow(project, dir); dir = dirname(dir)) {
|
|
203
|
+
if (existsSync(join(dir, '.git'))) {
|
|
204
|
+
return CONFIG_NAMES.some((name) => existsSync(join(dir, name))) ? dir : null
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return null
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/** `args` with a relative `--debug <path>` anchored to `projectDir`, so the log stays put when Probity runs elsewhere. */
|
|
211
|
+
export function debugArgs(args, projectDir) {
|
|
212
|
+
return args.map((arg, i) =>
|
|
213
|
+
args[i - 1] === '--debug' && !isAbsolute(arg) ? join(projectDir, arg) : arg,
|
|
214
|
+
)
|
|
215
|
+
}
|
|
216
|
+
|
|
137
217
|
function probityBin() {
|
|
138
218
|
// @nizos/probity doesn't export its package.json, so resolve the main
|
|
139
219
|
// entry and walk up to the package root for the bin path.
|
|
@@ -156,9 +236,18 @@ function probityBin() {
|
|
|
156
236
|
async function main() {
|
|
157
237
|
const chunks = []
|
|
158
238
|
for await (const chunk of process.stdin) chunks.push(chunk)
|
|
159
|
-
const
|
|
239
|
+
const raw = Buffer.concat(chunks).toString('utf8')
|
|
240
|
+
const { input, cleanup } = preparePayload(raw)
|
|
241
|
+
let payload
|
|
242
|
+
try {
|
|
243
|
+
payload = JSON.parse(raw)
|
|
244
|
+
} catch {
|
|
245
|
+
payload = null
|
|
246
|
+
}
|
|
247
|
+
const projectDir = process.cwd()
|
|
248
|
+
const workDir = probityDirectory(payload, projectDir) ?? projectDir
|
|
160
249
|
|
|
161
|
-
const args = process.argv.slice(2)
|
|
250
|
+
const args = debugArgs(process.argv.slice(2), projectDir)
|
|
162
251
|
if (!args.includes('--agent')) args.unshift('--agent', 'claude-code')
|
|
163
252
|
|
|
164
253
|
let bin
|
|
@@ -169,7 +258,10 @@ async function main() {
|
|
|
169
258
|
cleanup()
|
|
170
259
|
process.exit(2)
|
|
171
260
|
}
|
|
172
|
-
const child = spawn(process.execPath, [bin, ...args], {
|
|
261
|
+
const child = spawn(process.execPath, [bin, ...args], {
|
|
262
|
+
cwd: workDir,
|
|
263
|
+
stdio: ['pipe', 'inherit', 'inherit'],
|
|
264
|
+
})
|
|
173
265
|
child.stdin.end(input)
|
|
174
266
|
child.on('exit', (code, signal) => {
|
|
175
267
|
cleanup()
|