paqad-ai 1.46.1 → 1.46.2
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 +21 -0
- package/dist/cli/index.js +16 -16
- package/dist/cli/index.js.map +1 -1
- package/dist/index.js +41 -8
- package/dist/index.js.map +1 -1
- package/dist/kernel/gate.js +3 -2
- package/dist/kernel/gate.js.map +1 -1
- package/dist/stage-evidence/marker-parse.js +3 -2
- package/dist/stage-evidence/marker-parse.js.map +1 -1
- package/package.json +1 -1
- package/runtime/hooks/lib/codex-rollout.mjs +90 -0
- package/runtime/hooks/verification-record.mjs +13 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# paqad-ai
|
|
2
2
|
|
|
3
|
+
## 1.46.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- b3fc7df: fix(#313): cross-provider enforcement + RAG coverage from the dogfood benchmark
|
|
8
|
+
|
|
9
|
+
- **Codex stage markers no longer lost.** On `codex-cli` the completion `Stop`
|
|
10
|
+
payload carries no readable `transcript_path` and its inline final message is
|
|
11
|
+
marker-less, so well-behaved Codex runs recorded zero stages and were silently
|
|
12
|
+
scored "blocked". The record-only hook now reads the session's own
|
|
13
|
+
`~/.codex/sessions/**/rollout-*.jsonl` (honoring `CODEX_HOME`), and the marker
|
|
14
|
+
parser now understands Codex's `payload`-nested rollout shape.
|
|
15
|
+
- **`module-docs-structure` stops over-blocking pre-existing flat docs.** A
|
|
16
|
+
doc-sync that merely touched a flat `docs/modules/{module}/features/{feature}.md`
|
|
17
|
+
file already established repo-wide is no longer hard-failed into a revert (same
|
|
18
|
+
family as #310). A lone flat doc introduced into an otherwise-nested repo still
|
|
19
|
+
fails.
|
|
20
|
+
- **Honest RAG host-surface coverage.** Documented that the `UserPromptSubmit`
|
|
21
|
+
retrieval seam only runs where the host executes that hook; the JetBrains Claude
|
|
22
|
+
surface did not in the benchmark, so retrieval degrades to grep/read there.
|
|
23
|
+
|
|
3
24
|
## 1.46.1
|
|
4
25
|
|
|
5
26
|
### Patch Changes
|
package/dist/cli/index.js
CHANGED
|
@@ -24969,7 +24969,7 @@ init_esm_shims();
|
|
|
24969
24969
|
|
|
24970
24970
|
// src/verification/gates/module-docs-structure.ts
|
|
24971
24971
|
init_esm_shims();
|
|
24972
|
-
import { existsSync as existsSync57 } from "fs";
|
|
24972
|
+
import { existsSync as existsSync57, readdirSync as readdirSync13 } from "fs";
|
|
24973
24973
|
import { readFile as readFile57 } from "fs/promises";
|
|
24974
24974
|
import { join as join116 } from "path";
|
|
24975
24975
|
|
|
@@ -25879,7 +25879,7 @@ init_esm_shims();
|
|
|
25879
25879
|
// src/packs/compliance-packs.ts
|
|
25880
25880
|
init_esm_shims();
|
|
25881
25881
|
init_runtime_paths();
|
|
25882
|
-
import { existsSync as existsSync68, readdirSync as
|
|
25882
|
+
import { existsSync as existsSync68, readdirSync as readdirSync14, readFileSync as readFileSync55 } from "fs";
|
|
25883
25883
|
import { homedir as homedir9 } from "os";
|
|
25884
25884
|
import { join as join128 } from "path";
|
|
25885
25885
|
import YAML16 from "yaml";
|
|
@@ -26287,7 +26287,7 @@ init_cancelled_error();
|
|
|
26287
26287
|
init_events();
|
|
26288
26288
|
|
|
26289
26289
|
// src/index.ts
|
|
26290
|
-
var VERSION = "1.46.
|
|
26290
|
+
var VERSION = "1.46.2";
|
|
26291
26291
|
|
|
26292
26292
|
// src/cli/commands/audit.ts
|
|
26293
26293
|
init_esm_shims();
|
|
@@ -28729,7 +28729,7 @@ import { join as join145 } from "path";
|
|
|
28729
28729
|
|
|
28730
28730
|
// src/dashboard/collectors/fs-helpers.ts
|
|
28731
28731
|
init_esm_shims();
|
|
28732
|
-
import { readdirSync as
|
|
28732
|
+
import { readdirSync as readdirSync15, statSync as statSync10 } from "fs";
|
|
28733
28733
|
import { join as join144 } from "path";
|
|
28734
28734
|
function scanDirectory(root, options = {}) {
|
|
28735
28735
|
const out = [];
|
|
@@ -28738,7 +28738,7 @@ function scanDirectory(root, options = {}) {
|
|
|
28738
28738
|
const walk4 = (dir, depth, rel) => {
|
|
28739
28739
|
let entries;
|
|
28740
28740
|
try {
|
|
28741
|
-
entries =
|
|
28741
|
+
entries = readdirSync15(dir, { withFileTypes: true });
|
|
28742
28742
|
} catch {
|
|
28743
28743
|
return;
|
|
28744
28744
|
}
|
|
@@ -29277,12 +29277,12 @@ function buildEvidencePacket(projectRoot, options = {}) {
|
|
|
29277
29277
|
init_esm_shims();
|
|
29278
29278
|
init_paths();
|
|
29279
29279
|
init_path_utils();
|
|
29280
|
-
import { existsSync as existsSync78, readdirSync as
|
|
29280
|
+
import { existsSync as existsSync78, readdirSync as readdirSync16 } from "fs";
|
|
29281
29281
|
import { join as join148 } from "path";
|
|
29282
29282
|
import YAML19 from "yaml";
|
|
29283
29283
|
var EDITABLE_EXTENSIONS = [".md", ".yml", ".yaml", ".json"];
|
|
29284
29284
|
function buildNode(absolute, relative26, name) {
|
|
29285
|
-
const entries =
|
|
29285
|
+
const entries = readdirSync16(absolute, { withFileTypes: true });
|
|
29286
29286
|
const children = [];
|
|
29287
29287
|
for (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {
|
|
29288
29288
|
if (entry.name.startsWith(".")) continue;
|
|
@@ -29338,7 +29338,7 @@ function readInstructionsFile(projectRoot, treePath) {
|
|
|
29338
29338
|
// src/dashboard/inventory.ts
|
|
29339
29339
|
init_esm_shims();
|
|
29340
29340
|
init_paths();
|
|
29341
|
-
import { existsSync as existsSync79, readdirSync as
|
|
29341
|
+
import { existsSync as existsSync79, readdirSync as readdirSync17, readFileSync as readFileSync61 } from "fs";
|
|
29342
29342
|
import { homedir as homedir10 } from "os";
|
|
29343
29343
|
import { join as join149 } from "path";
|
|
29344
29344
|
import YAML20 from "yaml";
|
|
@@ -29350,7 +29350,7 @@ function countFilesRecursive(dir, extensions) {
|
|
|
29350
29350
|
const current = stack.pop();
|
|
29351
29351
|
let entries;
|
|
29352
29352
|
try {
|
|
29353
|
-
entries =
|
|
29353
|
+
entries = readdirSync17(current, { withFileTypes: true });
|
|
29354
29354
|
} catch {
|
|
29355
29355
|
continue;
|
|
29356
29356
|
}
|
|
@@ -29369,7 +29369,7 @@ function countFilesRecursive(dir, extensions) {
|
|
|
29369
29369
|
function countEntries(dir, suffix) {
|
|
29370
29370
|
if (!existsSync79(dir)) return 0;
|
|
29371
29371
|
try {
|
|
29372
|
-
const entries =
|
|
29372
|
+
const entries = readdirSync17(dir);
|
|
29373
29373
|
return suffix === void 0 ? entries.filter((name) => !name.startsWith(".")).length : entries.filter((name) => name.endsWith(suffix)).length;
|
|
29374
29374
|
} catch {
|
|
29375
29375
|
return 0;
|
|
@@ -29912,7 +29912,7 @@ function renderMarkdown(report) {
|
|
|
29912
29912
|
// src/dashboard/onboarding-checklist.ts
|
|
29913
29913
|
init_esm_shims();
|
|
29914
29914
|
init_paths();
|
|
29915
|
-
import { existsSync as existsSync80, readdirSync as
|
|
29915
|
+
import { existsSync as existsSync80, readdirSync as readdirSync18, readFileSync as readFileSync62 } from "fs";
|
|
29916
29916
|
import { join as join150 } from "path";
|
|
29917
29917
|
function fileHasContent(path11) {
|
|
29918
29918
|
try {
|
|
@@ -29923,7 +29923,7 @@ function fileHasContent(path11) {
|
|
|
29923
29923
|
}
|
|
29924
29924
|
function dirHasEntries(path11) {
|
|
29925
29925
|
try {
|
|
29926
|
-
return existsSync80(path11) &&
|
|
29926
|
+
return existsSync80(path11) && readdirSync18(path11).some((name) => !name.startsWith("."));
|
|
29927
29927
|
} catch {
|
|
29928
29928
|
return false;
|
|
29929
29929
|
}
|
|
@@ -30227,7 +30227,7 @@ var OpsJobRunner = class {
|
|
|
30227
30227
|
init_esm_shims();
|
|
30228
30228
|
init_loader();
|
|
30229
30229
|
init_manager();
|
|
30230
|
-
import { existsSync as existsSync81, readdirSync as
|
|
30230
|
+
import { existsSync as existsSync81, readdirSync as readdirSync19 } from "fs";
|
|
30231
30231
|
import { join as join152 } from "path";
|
|
30232
30232
|
var SOURCE_ORDER3 = ["built-in", "global", "project"];
|
|
30233
30233
|
var PACK_NAME_PATTERN = /^[a-z0-9][a-z0-9-]*$/;
|
|
@@ -30254,7 +30254,7 @@ function listPacks2(projectRoot, overrides = {}) {
|
|
|
30254
30254
|
if (!existsSync81(sourceRoot)) {
|
|
30255
30255
|
continue;
|
|
30256
30256
|
}
|
|
30257
|
-
const packDirs =
|
|
30257
|
+
const packDirs = readdirSync19(sourceRoot, { withFileTypes: true }).filter((entry) => entry.isDirectory()).filter((entry) => !entry.name.startsWith("_") && !entry.name.startsWith("."));
|
|
30258
30258
|
for (const entry of packDirs) {
|
|
30259
30259
|
const pack = loader.validatePack(join152(sourceRoot, entry.name), source);
|
|
30260
30260
|
byName.set(pack.manifest.name, {
|
|
@@ -31380,7 +31380,7 @@ function collectModuleMapDrift(projectRoot) {
|
|
|
31380
31380
|
// src/dashboard/collectors/pentest.ts
|
|
31381
31381
|
init_esm_shims();
|
|
31382
31382
|
init_paths();
|
|
31383
|
-
import { existsSync as existsSync89, readFileSync as readFileSync67, readdirSync as
|
|
31383
|
+
import { existsSync as existsSync89, readFileSync as readFileSync67, readdirSync as readdirSync20 } from "fs";
|
|
31384
31384
|
import { join as join160 } from "path";
|
|
31385
31385
|
var HELPER11 = {
|
|
31386
31386
|
what: "Each run of the pentest workflow leaves a progress.json + findings under .paqad/pentest/runs/<run_id>/.",
|
|
@@ -31390,7 +31390,7 @@ function listRuns(projectRoot) {
|
|
|
31390
31390
|
const dir = join160(projectRoot, PATHS.PENTEST_RUNS_DIR);
|
|
31391
31391
|
if (!existsSync89(dir)) return [];
|
|
31392
31392
|
try {
|
|
31393
|
-
return
|
|
31393
|
+
return readdirSync20(dir, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name);
|
|
31394
31394
|
} catch {
|
|
31395
31395
|
return [];
|
|
31396
31396
|
}
|