@mrciphersmith/keryx 0.3.131 → 0.3.132
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 +3537 -3369
- package/dist/core.js +33 -19
- package/package.json +1 -1
- package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.detail.md +14 -0
package/dist/core.js
CHANGED
|
@@ -29211,6 +29211,39 @@ function decisionWriters(kind, packageArg = "<review-dir>") {
|
|
|
29211
29211
|
import { existsSync as existsSync7 } from "fs";
|
|
29212
29212
|
import { cp, mkdir as mkdir9, mkdtemp, readFile as readFile22, readdir as readdir11, realpath as realpath12, rm as rm3, symlink, writeFile as writeFile6 } from "fs/promises";
|
|
29213
29213
|
import path50 from "path";
|
|
29214
|
+
|
|
29215
|
+
// src/lib/git-env.ts
|
|
29216
|
+
var GIT_DISCOVERY_OVERRIDE_VARS = [
|
|
29217
|
+
"GIT_DIR",
|
|
29218
|
+
"GIT_WORK_TREE",
|
|
29219
|
+
"GIT_INDEX_FILE",
|
|
29220
|
+
"GIT_OBJECT_DIRECTORY",
|
|
29221
|
+
"GIT_ALTERNATE_OBJECT_DIRECTORIES",
|
|
29222
|
+
"GIT_COMMON_DIR"
|
|
29223
|
+
];
|
|
29224
|
+
function withoutGitDiscoveryOverrides(env) {
|
|
29225
|
+
const clean = {};
|
|
29226
|
+
for (const [key, value] of Object.entries(env)) {
|
|
29227
|
+
if (value !== undefined && !GIT_DISCOVERY_OVERRIDE_VARS.includes(key)) {
|
|
29228
|
+
clean[key] = value;
|
|
29229
|
+
}
|
|
29230
|
+
}
|
|
29231
|
+
return clean;
|
|
29232
|
+
}
|
|
29233
|
+
|
|
29234
|
+
// src/review/worktree-provenance.ts
|
|
29235
|
+
var REVIEW_PACKAGES_DIR = ".metaproject/reviews";
|
|
29236
|
+
var EXCLUDE_REVIEW_PACKAGES = `:(exclude)${REVIEW_PACKAGES_DIR}`;
|
|
29237
|
+
var DEFAULT_PROVENANCE_LIMITS = {
|
|
29238
|
+
maxUntrackedFiles: 20000,
|
|
29239
|
+
maxHashedFileBytes: 10 * 1024 * 1024,
|
|
29240
|
+
maxGitOutputBytes: 64 * 1024 * 1024,
|
|
29241
|
+
maxTotalBytes: 256 * 1024 * 1024,
|
|
29242
|
+
gitTimeoutMs: 60000,
|
|
29243
|
+
maxMs: 120000
|
|
29244
|
+
};
|
|
29245
|
+
|
|
29246
|
+
// src/review/mutate.ts
|
|
29214
29247
|
var MUTANT_KINDS = ["behavior", "presentation"];
|
|
29215
29248
|
var MUTANTS_SPEC = "mutants.json";
|
|
29216
29249
|
var EVIDENCE_DIR = "research-evidence";
|
|
@@ -38343,25 +38376,6 @@ init_contained_write();
|
|
|
38343
38376
|
import { existsSync as existsSync17 } from "fs";
|
|
38344
38377
|
import { readFile as readFile61, readdir as readdir20 } from "fs/promises";
|
|
38345
38378
|
import path119 from "path";
|
|
38346
|
-
|
|
38347
|
-
// src/lib/git-env.ts
|
|
38348
|
-
var GIT_DISCOVERY_OVERRIDE_VARS = [
|
|
38349
|
-
"GIT_DIR",
|
|
38350
|
-
"GIT_WORK_TREE",
|
|
38351
|
-
"GIT_INDEX_FILE",
|
|
38352
|
-
"GIT_OBJECT_DIRECTORY",
|
|
38353
|
-
"GIT_ALTERNATE_OBJECT_DIRECTORIES",
|
|
38354
|
-
"GIT_COMMON_DIR"
|
|
38355
|
-
];
|
|
38356
|
-
function withoutGitDiscoveryOverrides(env) {
|
|
38357
|
-
const clean = {};
|
|
38358
|
-
for (const [key, value] of Object.entries(env)) {
|
|
38359
|
-
if (value !== undefined && !GIT_DISCOVERY_OVERRIDE_VARS.includes(key)) {
|
|
38360
|
-
clean[key] = value;
|
|
38361
|
-
}
|
|
38362
|
-
}
|
|
38363
|
-
return clean;
|
|
38364
|
-
}
|
|
38365
38379
|
// src/metrics/lifecycle.ts
|
|
38366
38380
|
init_fs();
|
|
38367
38381
|
init_guard();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mrciphersmith/keryx",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.132",
|
|
4
4
|
"description": "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|
|
@@ -775,6 +775,20 @@ and `.json`. A mutant is `killed` (the suite went red), `survived` (nothing pins
|
|
|
775
775
|
behaviour), `timeout`, or `invalid` (anchor missing or not unique, file outside the copy).
|
|
776
776
|
A survivor is evidence for the finding that names it.
|
|
777
777
|
|
|
778
|
+
When `--test` is a plain `[env] [NAME=value] bun test <paths>` command, each mutant runs with
|
|
779
|
+
`--bail` inserted right after `bun test`: the first red test ends that run, so a killed mutant
|
|
780
|
+
costs the time to its first failure, not the whole suite. The baseline always runs in full, and
|
|
781
|
+
a green run is the same with or without the flag, so a survivor stays a survivor. One verdict can move: a mutant that fails an early test and would hang in a later one is `killed` with bail and `timeout` without it. Any other command shape
|
|
782
|
+
(`sh script`, quotes, pipes, `bunx`) runs as given. `--no-bail` turns this off and takes no value.
|
|
783
|
+
The `.json` record carries `bail: true` when it was applied; always `startedAt`, `loadavg` (sampled
|
|
784
|
+
at the start of the pass), `provenanceMs`, `copyMs` and `mutantsMs`; and `head` and `treeHash` only
|
|
785
|
+
when the worktree is the root of a git checkout and the size and time limits of that step held.
|
|
786
|
+
`treeHash` hashes the tracked changes against HEAD (staged or not) and the untracked, non-ignored
|
|
787
|
+
files, so two passes over the same code agree. It leaves out the review packages under
|
|
788
|
+
`.metaproject/reviews`, ignored files (the scratch copy still includes them), the inside of an
|
|
789
|
+
untracked nested repository, and the content of an untracked file over 10 MiB (counted by size).
|
|
790
|
+
Records written before these fields exist stay valid.
|
|
791
|
+
|
|
778
792
|
`keryx review complete` refuses while proposed mutants are unrun on an attended round, unless the
|
|
779
793
|
operator waived the pass themselves: the `review_waive_mutation` card in keryx shell, or their answer to
|
|
780
794
|
the host question recorded with `keryx review waive-mutation --package <review-dir> --reason "<why>"
|