doc-detective 4.11.1 → 4.12.0

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 CHANGED
@@ -94,6 +94,7 @@ async function runTestsHandler(args) {
94
94
  configPath: configPath,
95
95
  configError: err instanceof Error ? err : new Error(String(err)),
96
96
  outDir: defaultDebugDir(),
97
+ args,
97
98
  });
98
99
  // The env-var dump replaced a real test run; a broken config must
99
100
  // still fail the process so CI doesn't go green on an unran suite.
@@ -114,6 +115,7 @@ async function runTestsHandler(args) {
114
115
  configPath,
115
116
  configError: null,
116
117
  outDir: defaultDebugDir(),
118
+ args,
117
119
  });
118
120
  return;
119
121
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface AppiumDriverStatus {
2
+ name: string;
3
+ registered: boolean | null;
4
+ npmResolvable: boolean;
5
+ }
6
+ export interface AppiumDiagnostics {
7
+ appiumHome: string | null;
8
+ appiumInstalled: boolean;
9
+ extensionsManifestPath: string | null;
10
+ extensionsManifestPresent: boolean;
11
+ manifestError?: string;
12
+ registeredDrivers: string[];
13
+ drivers: AppiumDriverStatus[];
14
+ }
15
+ export declare function registeredDriverPkgNames(manifestText: string): string[];
16
+ export declare function collectAppiumDiagnostics(config: any): AppiumDiagnostics;
17
+ //# sourceMappingURL=appium.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appium.d.ts","sourceRoot":"","sources":["../../src/debug/appium.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,kBAAkB;IAEjC,IAAI,EAAE,MAAM,CAAC;IAKb,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAE3B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,yBAAyB,EAAE,OAAO,CAAC;IAGnC,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAKD,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAWvE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,GAAG,GAAG,iBAAiB,CAyDvE"}
@@ -0,0 +1,98 @@
1
+ // Appium registration collector for the diagnostic dump.
2
+ //
3
+ // Reconciles the two ways an Appium driver can be "there":
4
+ // - npm-resolvable: the driver package resolves from the shim node_modules
5
+ // or the runtime cache (resolveHeavyDepPath).
6
+ // - registered: Appium has it recorded in its extensions manifest
7
+ // (<APPIUM_HOME>/node_modules/.cache/appium/extensions.yaml) under the
8
+ // active APPIUM_HOME.
9
+ // The mismatch ("I npm-installed it but Appium doesn't see it") is a real
10
+ // support case, usually an APPIUM_HOME pointing at the wrong node_modules.
11
+ //
12
+ // Registration is read straight from extensions.yaml — the same manifest
13
+ // Appium itself reads — rather than spawning `appium driver list`. That
14
+ // command cold-loads Appium and does an npm update-check (network), so it's
15
+ // slow and variable (8s+ cold vs <1s warm); a bounded probe would
16
+ // intermittently time out and then mislabel every registered driver as
17
+ // "not registered". The manifest is authoritative, offline, and instant, so
18
+ // the dump has no subprocess at all.
19
+ import fs from "node:fs";
20
+ import path from "node:path";
21
+ import YAML from "yaml";
22
+ import { setAppiumHome } from "../core/appium.js";
23
+ import { resolveHeavyDepPath } from "../runtime/loader.js";
24
+ // The driver packages doc-detective installs. Order matches the browsers we
25
+ // support (Chrome via chromium, Firefox via gecko).
26
+ const KNOWN_DRIVERS = ["appium-chromium-driver", "appium-geckodriver"];
27
+ // Parse the `pkgName` of every driver recorded in an extensions.yaml
28
+ // document. Falls back to the short driver key when an entry omits pkgName.
29
+ // Pure (takes the YAML text) so it's unit-testable without a filesystem.
30
+ export function registeredDriverPkgNames(manifestText) {
31
+ const doc = YAML.parse(manifestText);
32
+ const drivers = doc?.drivers;
33
+ if (!drivers || typeof drivers !== "object")
34
+ return [];
35
+ const names = [];
36
+ for (const key of Object.keys(drivers)) {
37
+ const entry = drivers[key];
38
+ const pkg = entry?.pkgName;
39
+ names.push(typeof pkg === "string" && pkg.length > 0 ? pkg : key);
40
+ }
41
+ return names;
42
+ }
43
+ export function collectAppiumDiagnostics(config) {
44
+ const ctx = { cacheDir: config?.cacheDir };
45
+ // Resolve APPIUM_HOME independently (the cache collector also does this in a
46
+ // full dump). Idempotent, so order doesn't matter — this collector is
47
+ // correct whether called standalone or after collectCacheStatus.
48
+ try {
49
+ setAppiumHome(ctx);
50
+ }
51
+ catch {
52
+ // Best-effort — diagnostics must never crash.
53
+ }
54
+ const appiumHome = process.env.APPIUM_HOME || null;
55
+ // Appium records registered extensions in
56
+ // <APPIUM_HOME>/node_modules/.cache/appium/extensions.yaml.
57
+ const extensionsManifestPath = appiumHome
58
+ ? path.join(appiumHome, "node_modules", ".cache", "appium", "extensions.yaml")
59
+ : null;
60
+ let extensionsManifestPresent = false;
61
+ let manifestError;
62
+ let registeredDrivers = [];
63
+ if (extensionsManifestPath) {
64
+ try {
65
+ extensionsManifestPresent = fs.existsSync(extensionsManifestPath);
66
+ }
67
+ catch {
68
+ extensionsManifestPresent = false;
69
+ }
70
+ if (extensionsManifestPresent) {
71
+ try {
72
+ registeredDrivers = registeredDriverPkgNames(fs.readFileSync(extensionsManifestPath, "utf8"));
73
+ }
74
+ catch (err) {
75
+ manifestError = err?.message || String(err);
76
+ }
77
+ }
78
+ }
79
+ // Registration is only KNOWN when the manifest was read successfully;
80
+ // otherwise every driver's `registered` is null (unknown), not false.
81
+ const registrationKnown = extensionsManifestPresent && !manifestError;
82
+ const registeredSet = new Set(registeredDrivers);
83
+ const drivers = KNOWN_DRIVERS.map((name) => ({
84
+ name,
85
+ npmResolvable: Boolean(resolveHeavyDepPath(name, ctx)),
86
+ registered: registrationKnown ? registeredSet.has(name) : null,
87
+ }));
88
+ return {
89
+ appiumHome,
90
+ appiumInstalled: Boolean(resolveHeavyDepPath("appium", ctx)),
91
+ extensionsManifestPath,
92
+ extensionsManifestPresent,
93
+ manifestError,
94
+ registeredDrivers,
95
+ drivers,
96
+ };
97
+ }
98
+ //# sourceMappingURL=appium.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appium.js","sourceRoot":"","sources":["../../src/debug/appium.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface CacheEntry {
2
+ label: string;
3
+ path: string | null;
4
+ exists: boolean;
5
+ writable: boolean | null;
6
+ freeBytes: number | null;
7
+ }
8
+ export interface CacheStatus {
9
+ entries: CacheEntry[];
10
+ error?: string;
11
+ }
12
+ export declare function collectCacheStatus(config: any): CacheStatus;
13
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/debug/cache.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IAEd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAGhB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAGzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,WAAW,CAiD3D"}
@@ -0,0 +1,132 @@
1
+ // Cache & runtime status collector for the diagnostic dump.
2
+ //
3
+ // Resolves the directories the lazy installer and runtime depend on
4
+ // (cacheDir / runtimeDir / browsersDir / installed.json / APPIUM_HOME)
5
+ // and reports, per location, whether it exists, is writable, and how much
6
+ // disk space is free. A non-writable cacheDir is a common silent failure
7
+ // mode for lazy installs, so surfacing it here lets the Findings layer
8
+ // suggest `DOC_DETECTIVE_CACHE_DIR`.
9
+ //
10
+ // Read-only and crash-proof: every probe is wrapped so a permission error
11
+ // on one path degrades to `writable: false` rather than aborting the dump.
12
+ // (`getCacheDir` does create the cache root as a side effect — acceptable
13
+ // here since the dump is explicitly probing the cache, and it matches how
14
+ // every other consumer resolves the dir.)
15
+ import fs from "node:fs";
16
+ import path from "node:path";
17
+ import { getCacheDir, getRuntimeDir, getBrowsersDir, getInstalledRecordPath, } from "../runtime/cacheDir.js";
18
+ import { setAppiumHome } from "../core/appium.js";
19
+ function safeExists(target) {
20
+ try {
21
+ return fs.existsSync(target);
22
+ }
23
+ catch {
24
+ return false;
25
+ }
26
+ }
27
+ // The target itself if it exists, otherwise the nearest existing ancestor —
28
+ // so probes against a not-yet-created dir (e.g. <cache>/runtime/browsers,
29
+ // whose parents may also be missing) answer "could doc-detective create and
30
+ // write here?" instead of failing on the first non-existent level.
31
+ function nearestExistingPath(target) {
32
+ let current = target;
33
+ // Bounded by the path depth; stops at the filesystem root (dirname of a
34
+ // root returns the root itself).
35
+ for (let i = 0; i < 64; i++) {
36
+ if (safeExists(current))
37
+ return current;
38
+ const parent = path.dirname(current);
39
+ if (parent === current)
40
+ return current;
41
+ current = parent;
42
+ }
43
+ return current;
44
+ }
45
+ // Probe W_OK on the path (or its nearest existing ancestor).
46
+ function isWritable(target) {
47
+ try {
48
+ fs.accessSync(nearestExistingPath(target), fs.constants.W_OK);
49
+ return true;
50
+ }
51
+ catch {
52
+ return false;
53
+ }
54
+ }
55
+ function freeSpaceBytes(target) {
56
+ try {
57
+ // statfsSync landed in Node 18.15 / 19.6; older runtimes lack it.
58
+ const statfsSync = fs
59
+ .statfsSync;
60
+ if (typeof statfsSync !== "function")
61
+ return null;
62
+ const stats = statfsSync(nearestExistingPath(target));
63
+ if (typeof stats?.bavail !== "number" || typeof stats?.bsize !== "number") {
64
+ return null;
65
+ }
66
+ return stats.bavail * stats.bsize;
67
+ }
68
+ catch {
69
+ return null;
70
+ }
71
+ }
72
+ function probeDir(label, p) {
73
+ return {
74
+ label,
75
+ path: p,
76
+ exists: safeExists(p),
77
+ writable: isWritable(p),
78
+ freeBytes: freeSpaceBytes(p),
79
+ };
80
+ }
81
+ export function collectCacheStatus(config) {
82
+ const ctx = { cacheDir: config?.cacheDir };
83
+ const entries = [];
84
+ try {
85
+ entries.push(probeDir("cacheDir", getCacheDir(ctx)));
86
+ entries.push(probeDir("runtimeDir", getRuntimeDir(ctx)));
87
+ entries.push(probeDir("browsersDir", getBrowsersDir(ctx)));
88
+ // installed.json is a file, not a dir — report existence + whether the
89
+ // installer could write the record here. writeInstalledRecord() writes via
90
+ // tmp-file + rename, which depends on the *directory* being writable (not
91
+ // the file), so probe the parent dir explicitly rather than the file path.
92
+ const recordPath = getInstalledRecordPath(ctx);
93
+ entries.push({
94
+ label: "installed.json",
95
+ path: recordPath,
96
+ exists: safeExists(recordPath),
97
+ writable: isWritable(path.dirname(recordPath)),
98
+ freeBytes: null,
99
+ });
100
+ // APPIUM_HOME is resolved by mutating process.env (setAppiumHome returns
101
+ // void), then read back. setAppiumHome always assigns a value (its legacy
102
+ // fallback sets one unconditionally), so the unset branch below only fires
103
+ // if the call threw and was swallowed above. Resolution is idempotent and
104
+ // done independently here (the appium collector calls it too) so each
105
+ // collector is correct standalone and in any order — the second call in a
106
+ // full dump is a cheap no-op, not an ordering dependency.
107
+ try {
108
+ setAppiumHome(ctx);
109
+ }
110
+ catch {
111
+ // Best-effort — diagnostics must never crash.
112
+ }
113
+ const appiumHome = process.env.APPIUM_HOME;
114
+ if (typeof appiumHome === "string" && appiumHome.length > 0) {
115
+ entries.push(probeDir("APPIUM_HOME", appiumHome));
116
+ }
117
+ else {
118
+ entries.push({
119
+ label: "APPIUM_HOME",
120
+ path: null,
121
+ exists: false,
122
+ writable: null,
123
+ freeBytes: null,
124
+ });
125
+ }
126
+ }
127
+ catch (err) {
128
+ return { entries, error: err?.message || String(err) };
129
+ }
130
+ return { entries };
131
+ }
132
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/debug/cache.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/debug/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI3C,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAQD,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,EAAE,EAAE,SAAS,CAqErD,CAAC"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/debug/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI3C,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAQD,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,EAAE,EAAE,SAAS,CAuErD,CAAC"}
@@ -53,6 +53,7 @@ export const debugCommand = {
53
53
  configError: err instanceof Error ? err : new Error(String(err)),
54
54
  includeEnv,
55
55
  outDir,
56
+ args,
56
57
  });
57
58
  // Config is broken — exit non-zero so scripts/CI that gate on the
58
59
  // exit code don't treat a CONFIG INVALID dump as success. Mirrors
@@ -66,6 +67,7 @@ export const debugCommand = {
66
67
  configError: null,
67
68
  includeEnv,
68
69
  outDir,
70
+ args,
69
71
  });
70
72
  },
71
73
  };
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/debug/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/debug/command.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAUzB,qEAAqE;AACrE,yEAAyE;AACzE,EAAE;AACF,wEAAwE;AACxE,mEAAmE;AACnE,uDAAuD;AACvD,MAAM,CAAC,MAAM,YAAY,GAAiC;IACxD,OAAO,EAAE,OAAO;IAChB,QAAQ,EACN,sKAAsK;IACxK,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE;QAC1B,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,QAAQ,EACN,oKAAoK;KACvK,CAA+C;IAClD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,wEAAwE;QACxE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QAEjC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;QACxE,kEAAkE;QAClE,oEAAoE;QACpE,gEAAgE;QAChE,MAAM,iBAAiB,GACrB,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,iBAAiB;YAClC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,MAAiB,CAAC,IAAI,EAAE,CAAC;YAC9C,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;gBAC/B,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;oBAC/B,CAAC,CAAC,cAAc;oBAChB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;wBAC9B,CAAC,CAAC,aAAa;wBACf,CAAC,CAAC,IAAI,CAAC;QAET,0EAA0E;QAC1E,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnE,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,kEAAkE;YAClE,yDAAyD;YACzD,MAAM,UAAU,CAAC;gBACf,MAAM,EAAE;oBACN,QAAQ,EACN,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;oBAC5D,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;iBACzD;gBACD,UAAU;gBACV,WAAW,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChE,UAAU;gBACV,MAAM;gBACN,IAAI;aACL,CAAC,CAAC;YACH,kEAAkE;YAClE,kEAAkE;YAClE,kDAAkD;YAClD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,UAAU,CAAC;YACf,MAAM;YACN,UAAU;YACV,WAAW,EAAE,IAAI;YACjB,UAAU;YACV,MAAM;YACN,IAAI;SACL,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { DebugData } from "./index.js";
2
+ export interface Finding {
3
+ severity: "error" | "warning" | "info";
4
+ title: string;
5
+ detail: string;
6
+ fix?: string;
7
+ }
8
+ export declare function computeFindings(data: DebugData): Finding[];
9
+ //# sourceMappingURL=findings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findings.d.ts","sourceRoot":"","sources":["../../src/debug/findings.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AA2HD,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,EAAE,CAW1D"}
@@ -0,0 +1,134 @@
1
+ // Interpretation layer for the diagnostic dump.
2
+ //
3
+ // Pure functions over the already-collected DebugData (no I/O, no probing —
4
+ // the data sections did that). Each rule turns a data condition into a
5
+ // human-readable Finding with, where possible, the exact fix command. This
6
+ // is what makes the dump self-service for support: instead of "Chrome NOT
7
+ // AVAILABLE", the user sees "→ run `doc-detective install runtime`".
8
+ //
9
+ // Modeled on the hints philosophy in src/hints/: small, pure, concrete.
10
+ // `import type` keeps this a compile-time-only dependency on index.ts, so
11
+ // there's no runtime import cycle.
12
+ function findDriver(data, pkg) {
13
+ return (data.appium?.drivers || []).find((d) => d.name === pkg);
14
+ }
15
+ function findBrowser(data, name) {
16
+ return (data.browsers?.browsers || []).find((b) => b.name === name);
17
+ }
18
+ // Chrome can't run and its Appium driver is missing or unregistered → the
19
+ // runtime install is incomplete.
20
+ const chromeUnavailable = (data) => {
21
+ const chrome = findBrowser(data, "chrome");
22
+ if (!chrome || !chrome.supported || chrome.available)
23
+ return null;
24
+ const driver = findDriver(data, "appium-chromium-driver");
25
+ // Suppress only when the driver is confirmed resolvable AND registered.
26
+ if (driver && driver.npmResolvable && driver.registered === true)
27
+ return null;
28
+ // Tailor the detail to what we actually know: a missing driver, a confirmed
29
+ // unregistered one, and an unknown-registration one (manifest absent) are
30
+ // distinct — saying "missing or not registered" for the unknown case would
31
+ // be wrong (the package resolved fine; only its registration is unverified).
32
+ const detail = !driver || !driver.npmResolvable
33
+ ? "Chrome shows NOT AVAILABLE and its Appium driver (appium-chromium-driver) is missing, so browser tests can't run."
34
+ : driver.registered === false
35
+ ? "Chrome shows NOT AVAILABLE and appium-chromium-driver is installed but not registered under the active APPIUM_HOME."
36
+ : "Chrome shows NOT AVAILABLE. appium-chromium-driver is installed, but its registration is unknown (Appium manifest missing or unreadable).";
37
+ return {
38
+ severity: "error",
39
+ title: "Chrome is not available",
40
+ detail,
41
+ fix: "doc-detective install runtime",
42
+ };
43
+ };
44
+ // Recorded install is older than the declared constraint, or the
45
+ // doc-detective / doc-detective-common versions disagree → stale install.
46
+ const staleInstall = (data) => {
47
+ const outdated = (data.install?.rows || []).filter((r) => r.outdated);
48
+ const lockstep = Boolean(data.docDetective?.lockstepWarning);
49
+ if (outdated.length === 0 && !lockstep)
50
+ return null;
51
+ const reasons = [];
52
+ if (outdated.length > 0) {
53
+ reasons.push(`outdated: ${outdated.map((r) => r.assetId).join(", ")}`);
54
+ }
55
+ if (lockstep)
56
+ reasons.push("doc-detective / doc-detective-common version mismatch");
57
+ return {
58
+ severity: "warning",
59
+ title: "Install looks stale",
60
+ detail: `${reasons.join("; ")}. A stale or mismatched install is a common source of hard-to-explain failures.`,
61
+ fix: "doc-detective install runtime",
62
+ };
63
+ };
64
+ // cacheDir not writable → lazy installs and recordings have nowhere to go.
65
+ const cacheNotWritable = (data) => {
66
+ const entry = (data.cache?.entries || []).find((e) => e.label === "cacheDir");
67
+ if (!entry || entry.writable !== false)
68
+ return null;
69
+ return {
70
+ severity: "error",
71
+ title: "Cache directory is not writable",
72
+ detail: `cacheDir (${entry.path}) is not writable, so doc-detective can't lazy-install browsers or runtime packages there.`,
73
+ fix: "set DOC_DETECTIVE_CACHE_DIR to a writable path",
74
+ };
75
+ };
76
+ // A proxy is configured and something the installer needs is missing — flag
77
+ // the proxy as a likely lazy-install blocker (we don't probe reachability;
78
+ // that's the opt-in --check-network work).
79
+ const proxyMaybeBlocking = (data) => {
80
+ // Catch both the standard proxy env vars (HTTP(S)_PROXY / ALL_PROXY) and a
81
+ // proxy configured purely through npm (`npm config set proxy=…`), which
82
+ // surfaces in the network section as npm_config_proxy / npm_config_https_proxy.
83
+ const hasProxy = (data.network?.variables || []).some((v) => /^(https?_proxy|all_proxy)$/i.test(v.name) ||
84
+ /^npm_config_(https?_)?proxy$/i.test(v.name));
85
+ if (!hasProxy)
86
+ return null;
87
+ const missingNpm = (data.install?.rows || []).some((r) => r.kind === "npm" && !r.installed);
88
+ if (!missingNpm)
89
+ return null;
90
+ return {
91
+ severity: "info",
92
+ title: "Proxy configured with missing runtime packages",
93
+ detail: "A proxy is set and some runtime npm packages are not installed. If lazy installs fail, the proxy/registry is the likely cause — verify it's reachable and that proxy-agent is installed for @puppeteer/browsers downloads.",
94
+ };
95
+ };
96
+ // Driver resolves from npm but Appium doesn't list it → APPIUM_HOME mismatch.
97
+ // `registered === false` is the only firing case: `null` (manifest unread)
98
+ // means registration is unknown, not a finding — a missing manifest must not
99
+ // false-flag every resolvable driver.
100
+ const driverNotRegistered = (data) => {
101
+ const stranded = (data.appium?.drivers || []).filter((d) => d.npmResolvable && d.registered === false);
102
+ if (stranded.length === 0)
103
+ return null;
104
+ return {
105
+ severity: "warning",
106
+ title: "Appium driver installed but not registered",
107
+ detail: `${stranded
108
+ .map((d) => d.name)
109
+ .join(", ")} resolve from npm but Appium doesn't list them under the active APPIUM_HOME — usually an APPIUM_HOME pointing at the wrong node_modules.`,
110
+ fix: "doc-detective install runtime",
111
+ };
112
+ };
113
+ const RULES = [
114
+ chromeUnavailable,
115
+ staleInstall,
116
+ cacheNotWritable,
117
+ proxyMaybeBlocking,
118
+ driverNotRegistered,
119
+ ];
120
+ export function computeFindings(data) {
121
+ const findings = [];
122
+ for (const rule of RULES) {
123
+ try {
124
+ const finding = rule(data);
125
+ if (finding)
126
+ findings.push(finding);
127
+ }
128
+ catch {
129
+ // A rule must never crash the dump; skip on error.
130
+ }
131
+ }
132
+ return findings;
133
+ }
134
+ //# sourceMappingURL=findings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findings.js","sourceRoot":"","sources":["../../src/debug/findings.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,12 @@
1
1
  import { type SystemInfo } from "./system.js";
2
2
  import { type ToolResult } from "./tools.js";
3
3
  import { type ContainerInfo } from "./envvars.js";
4
+ import { type InstallData } from "./install.js";
5
+ import { type CacheStatus } from "./cache.js";
6
+ import { type NetworkConfig } from "./network.js";
7
+ import { type Provenance } from "./provenance.js";
8
+ import { type AppiumDiagnostics } from "./appium.js";
9
+ import { type Finding } from "./findings.js";
4
10
  export interface PrintDebugOptions {
5
11
  config: any;
6
12
  configPath?: string | null;
@@ -24,6 +30,12 @@ export interface PrintDebugOptions {
24
30
  * omit it so calling `printDebug` never writes a file as a side effect.
25
31
  */
26
32
  outDir?: string;
33
+ /**
34
+ * The raw parsed CLI args (yargs argv). Used only by the Config provenance
35
+ * section to report which flags overrode the validated config. Optional so
36
+ * unit tests can call `printDebug` without synthesizing argv.
37
+ */
38
+ args?: any;
27
39
  print?: (line: string) => void;
28
40
  }
29
41
  export declare function defaultDebugDir(): string;
@@ -76,9 +88,15 @@ export interface DebugData {
76
88
  docDetective: DocDetectiveData;
77
89
  tools: ToolResult[];
78
90
  browsers: BrowsersData;
91
+ install: InstallData;
92
+ appium: AppiumDiagnostics;
93
+ cache: CacheStatus;
79
94
  container: ContainerInfo;
95
+ network: NetworkConfig;
80
96
  environment: EnvData;
97
+ provenance: Provenance;
81
98
  config: ConfigData;
99
+ findings: Finding[];
82
100
  }
83
101
  export declare function printDebug(opts: PrintDebugOptions): Promise<void>;
84
102
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/debug/index.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAStB,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAC3B;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAID,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAaD,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AACD,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,UAAU,EAAE,MAAM,CAAC;IAEnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,OAAO;IACf,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,aAAa,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;CACpB;AAqND,wBAAsB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/debug/index.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,12 @@ import { probeAllTools } from "./tools.js";
24
24
  import { findReferencedEnvVars, detectContainer, enumerateInputFiles, resolveDocExtensions, } from "./envvars.js";
25
25
  import { redactValue, redactObject } from "./redact.js";
26
26
  import { renderSection, renderKeyValues, renderDocument, } from "./render.js";
27
+ import { collectInstallStatus } from "./install.js";
28
+ import { collectCacheStatus } from "./cache.js";
29
+ import { collectNetworkConfig } from "./network.js";
30
+ import { collectProvenance } from "./provenance.js";
31
+ import { collectAppiumDiagnostics, } from "./appium.js";
32
+ import { computeFindings } from "./findings.js";
27
33
  // Where the dump is saved by default: `<cwd>/.doc-detective/`. A function
28
34
  // (not a constant) because it reads the live cwd at call time.
29
35
  export function defaultDebugDir() {
@@ -45,20 +51,51 @@ function timestampForFilename(iso) {
45
51
  const BROWSER_DETECTION_TIMEOUT_MS = 5000;
46
52
  async function collectDebugData(opts) {
47
53
  const system = collectSystemInfo();
48
- return {
54
+ const data = {
49
55
  generatedAt: system.wallclockIso,
50
56
  system,
51
57
  docDetective: collectDocDetective(),
52
58
  tools: await probeAllTools(opts.config?.cacheDir),
53
59
  browsers: await collectBrowsers(opts.config),
60
+ install: collectInstallStatus(opts.config),
61
+ appium: collectAppiumStatus(opts.config),
62
+ cache: collectCacheStatus(opts.config),
54
63
  container: detectContainer(),
64
+ network: collectNetworkConfig(),
55
65
  environment: collectEnvVars(opts),
66
+ provenance: collectProvenance({
67
+ configPath: opts.configPath ?? null,
68
+ args: opts.args,
69
+ }),
56
70
  config: {
57
71
  configPath: opts.configPath ?? null,
58
72
  configError: opts.configError?.message,
59
73
  redacted: safeRedactConfig(opts.config),
60
74
  },
75
+ // Computed last: the Findings layer interprets the data sections above.
76
+ findings: [],
61
77
  };
78
+ data.findings = computeFindings(data);
79
+ return data;
80
+ }
81
+ // collectAppiumDiagnostics reads extensions.yaml (no subprocess) and guards
82
+ // each step, but wrap the whole call so an unforeseen throw can't abort the
83
+ // dump.
84
+ function collectAppiumStatus(config) {
85
+ try {
86
+ return collectAppiumDiagnostics(config);
87
+ }
88
+ catch (err) {
89
+ return {
90
+ appiumHome: null,
91
+ appiumInstalled: false,
92
+ extensionsManifestPath: null,
93
+ extensionsManifestPresent: false,
94
+ manifestError: err?.message || String(err),
95
+ registeredDrivers: [],
96
+ drivers: [],
97
+ };
98
+ }
62
99
  }
63
100
  function collectDocDetective() {
64
101
  const { loadedFrom, entryPoint } = resolveLoadedFrom();
@@ -290,16 +327,168 @@ function writeFileSafe(file, contents, print, successPrefix) {
290
327
  // ---------------------------------------------------------------------------
291
328
  function renderText(data, opts) {
292
329
  const sections = [
330
+ // Findings first — it's the summary a support engineer reads before
331
+ // scrolling into the raw data sections below.
332
+ renderFindingsSection(data.findings),
293
333
  renderSystemSection(data.system),
294
334
  renderDocDetectiveSection(data.docDetective),
295
335
  renderToolsSection(data.tools),
296
336
  renderBrowsersSection(data.browsers),
337
+ renderInstallSection(data.install),
338
+ renderAppiumSection(data.appium),
339
+ renderCacheSection(data.cache),
297
340
  renderContainerSection(data.container),
341
+ renderNetworkSection(data.network),
298
342
  renderEnvSection(data.environment),
343
+ renderProvenanceSection(data.provenance),
299
344
  renderConfigSection(data.config, opts.configError ?? null),
300
345
  ];
301
346
  return renderDocument(sections, data.generatedAt);
302
347
  }
348
+ function renderFindingsSection(findings) {
349
+ if (findings.length === 0) {
350
+ return renderSection("Findings / next steps", [" No problems detected."]);
351
+ }
352
+ const lines = [];
353
+ for (const f of findings) {
354
+ lines.push(` [${f.severity.toUpperCase()}] ${f.title}`);
355
+ lines.push(` ${f.detail}`);
356
+ if (f.fix)
357
+ lines.push(` fix: ${f.fix}`);
358
+ lines.push("");
359
+ }
360
+ if (lines[lines.length - 1] === "")
361
+ lines.pop();
362
+ return renderSection("Findings / next steps", lines);
363
+ }
364
+ // Bytes → a compact human figure (MiB / GiB) for the cache free-space rows.
365
+ function formatBytes(bytes) {
366
+ if (!Number.isFinite(bytes) || bytes < 0)
367
+ return "<unknown>";
368
+ const units = ["B", "KiB", "MiB", "GiB", "TiB"];
369
+ let value = bytes;
370
+ let unit = 0;
371
+ while (value >= 1024 && unit < units.length - 1) {
372
+ value /= 1024;
373
+ unit += 1;
374
+ }
375
+ const rounded = unit === 0 ? value : Math.round(value * 10) / 10;
376
+ return `${rounded} ${units[unit]}`;
377
+ }
378
+ function formatInstallRow(r) {
379
+ const state = r.installed ? "installed" : "missing ";
380
+ const version = r.installedVersion || "—";
381
+ const parts = [`${r.assetId.padEnd(24)} ${state} ${version}`];
382
+ if (r.expectedVersion)
383
+ parts.push(`expected ${r.expectedVersion}`);
384
+ if (r.latestKnownVersion)
385
+ parts.push(`latest ${r.latestKnownVersion}`);
386
+ if (r.outdated)
387
+ parts.push("OUTDATED");
388
+ return parts.join(" ");
389
+ }
390
+ function renderInstallSection(install) {
391
+ if (install.error) {
392
+ return renderSection("Install status", [
393
+ ` <install status failed: ${install.error}>`,
394
+ ]);
395
+ }
396
+ const rows = install.rows || [];
397
+ const npm = rows.filter((r) => r.kind === "npm");
398
+ const browsers = rows.filter((r) => r.kind === "browser");
399
+ const lines = [];
400
+ lines.push(` record: ${install.recordPath || "<unknown>"}`);
401
+ lines.push("");
402
+ lines.push(" npm packages:");
403
+ if (npm.length === 0)
404
+ lines.push(" <none>");
405
+ for (const r of npm)
406
+ lines.push(` ${formatInstallRow(r)}`);
407
+ lines.push("");
408
+ lines.push(" browsers:");
409
+ if (browsers.length === 0)
410
+ lines.push(" <none>");
411
+ for (const r of browsers)
412
+ lines.push(` ${formatInstallRow(r)}`);
413
+ return renderSection("Install status", lines);
414
+ }
415
+ function renderAppiumSection(a) {
416
+ const lines = [];
417
+ lines.push(` APPIUM_HOME: ${a.appiumHome ?? "<unset>"}`);
418
+ lines.push(` appium installed: ${a.appiumInstalled}`);
419
+ const manifest = a.extensionsManifestPresent ? "present" : "absent";
420
+ const manifestPath = a.extensionsManifestPath
421
+ ? ` (${a.extensionsManifestPath})`
422
+ : "";
423
+ lines.push(` extensions.yaml: ${manifest}${manifestPath}`);
424
+ if (a.manifestError) {
425
+ lines.push(` ! could not read extensions.yaml: ${a.manifestError}`);
426
+ }
427
+ lines.push("");
428
+ lines.push(" drivers:");
429
+ if (a.drivers.length === 0)
430
+ lines.push(" <none>");
431
+ // registered === null means the manifest wasn't read — registration is
432
+ // unknown, not confirmed-absent. That covers two distinct cases: the
433
+ // manifest is absent, or it's present but unreadable/unparsable.
434
+ const unknownReason = a.manifestError ? "manifest unreadable" : "no manifest";
435
+ for (const d of a.drivers) {
436
+ const classification = d.registered === true
437
+ ? "registered"
438
+ : !d.npmResolvable
439
+ ? "missing"
440
+ : d.registered === false
441
+ ? "resolvable but not registered"
442
+ : `resolvable (registration unknown — ${unknownReason})`;
443
+ lines.push(` ${d.name.padEnd(24)} ${classification}`);
444
+ }
445
+ return renderSection("Appium registration", lines);
446
+ }
447
+ function renderCacheSection(cache) {
448
+ const lines = [];
449
+ if (cache.error)
450
+ lines.push(` ! cache probe error: ${cache.error}`);
451
+ for (const e of cache.entries) {
452
+ lines.push(` ${e.label}:`);
453
+ lines.push(` path: ${e.path ?? "<unset>"}`);
454
+ lines.push(` exists: ${e.exists}`);
455
+ if (e.writable !== null)
456
+ lines.push(` writable: ${e.writable}`);
457
+ if (e.freeBytes !== null) {
458
+ lines.push(` free: ${formatBytes(e.freeBytes)}`);
459
+ }
460
+ }
461
+ return renderSection("Cache & runtime", lines);
462
+ }
463
+ function renderNetworkSection(net) {
464
+ const lines = [];
465
+ if (net.variables.length === 0) {
466
+ lines.push(" <no proxy / npm network env vars set>");
467
+ }
468
+ else {
469
+ for (const { name, value } of net.variables) {
470
+ lines.push(` ${name} = ${value}`);
471
+ }
472
+ }
473
+ return renderSection("Proxy / npm network", lines);
474
+ }
475
+ function renderProvenanceSection(p) {
476
+ const lines = [];
477
+ lines.push(` config file: ${p.configPath || "<none>"}`);
478
+ lines.push(` DOC_DETECTIVE_CONFIG: ${p.docDetectiveConfigApplied ? "applied (overrides file)" : "not set"}`);
479
+ lines.push(` DOC_DETECTIVE_API: ${p.docDetectiveApiApplied ? "applied" : "not set"}`);
480
+ lines.push("");
481
+ if (p.cliOverrides.length === 0) {
482
+ lines.push(" CLI overrides: <none>");
483
+ }
484
+ else {
485
+ lines.push(" CLI overrides (override file + env):");
486
+ for (const o of p.cliOverrides) {
487
+ lines.push(` --${o.flag} → config.${o.configKey}`);
488
+ }
489
+ }
490
+ return renderSection("Config provenance", lines);
491
+ }
303
492
  function renderSystemSection(info) {
304
493
  return renderSection("System", renderKeyValues([
305
494
  ["platform", `${info.platform} (${info.arch})`],
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/debug/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/debug/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type StatusRow } from "../runtime/installer.js";
2
+ export interface InstallData {
3
+ recordPath?: string;
4
+ rows?: StatusRow[];
5
+ error?: string;
6
+ }
7
+ export declare function collectInstallStatus(config: any): InstallData;
8
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/debug/install.ts"],"names":[],"mappings":"AAYA,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,GAAG,GAAG,WAAW,CAO7D"}
@@ -0,0 +1,19 @@
1
+ // Install-status collector for the diagnostic dump.
2
+ //
3
+ // Diffs <cacheDir>/installed.json against the declared/expected versions via
4
+ // the installer's own status() — the same matrix `doc-detective install`
5
+ // reports (installed vs expected vs outdated, for npm packages and
6
+ // browsers). Wrapped so a missing/corrupt cache degrades to an `error`
7
+ // marker instead of crashing the dump.
8
+ import { getInstalledRecordPath, } from "../runtime/cacheDir.js";
9
+ import { status } from "../runtime/installer.js";
10
+ export function collectInstallStatus(config) {
11
+ try {
12
+ const ctx = { cacheDir: config?.cacheDir };
13
+ return { recordPath: getInstalledRecordPath(ctx), rows: status(ctx) };
14
+ }
15
+ catch (err) {
16
+ return { error: err?.message || String(err) };
17
+ }
18
+ }
19
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/debug/install.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,6EAA6E;AAC7E,yEAAyE;AACzE,mEAAmE;AACnE,uEAAuE;AACvE,uCAAuC;AAEvC,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAkB,MAAM,yBAAyB,CAAC;AAQjE,MAAM,UAAU,oBAAoB,CAAC,MAAW;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC5D,OAAO,EAAE,UAAU,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACxE,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAChD,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface NetworkVar {
2
+ name: string;
3
+ value: string;
4
+ }
5
+ export interface NetworkConfig {
6
+ variables: NetworkVar[];
7
+ }
8
+ export declare function collectNetworkConfig(env?: NodeJS.ProcessEnv): NetworkConfig;
9
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/debug/network.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AAiBD,wBAAgB,oBAAoB,CAClC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,aAAa,CAyBf"}
@@ -0,0 +1,55 @@
1
+ // Proxy / npm network config collector for the diagnostic dump.
2
+ //
3
+ // The lazy installer shells out to `npm install` to fetch heavy deps and
4
+ // browsers (see src/runtime/heavyDeps.ts — `@puppeteer/browsers` even pulls
5
+ // `proxy-agent` so proxied downloads work). A misconfigured proxy or
6
+ // registry is the single most common silent install failure, so the dump
7
+ // always shows the relevant env vars.
8
+ //
9
+ // Every value goes through `redactValue`, which already flags
10
+ // userinfo-bearing URLs (`https://user:tok@registry`) and `*authToken`-style
11
+ // keys — so a registry or proxy with embedded credentials is redacted, not
12
+ // leaked into a pasted bug report.
13
+ import { redactValue } from "./redact.js";
14
+ // Proxy vars are conventionally set in either case; tools read both, so we
15
+ // surface whichever the user actually set.
16
+ const PROXY_KEYS = [
17
+ "HTTP_PROXY",
18
+ "http_proxy",
19
+ "HTTPS_PROXY",
20
+ "https_proxy",
21
+ "NO_PROXY",
22
+ "no_proxy",
23
+ "ALL_PROXY",
24
+ "all_proxy",
25
+ ];
26
+ // Collect proxy + npm network env vars. Takes an explicit env map so the
27
+ // behavior is unit-testable without mutating the real process environment.
28
+ export function collectNetworkConfig(env = process.env) {
29
+ const names = new Set();
30
+ for (const key of PROXY_KEYS) {
31
+ if (typeof env[key] === "string")
32
+ names.add(key);
33
+ }
34
+ // Sweep every npm_config_* var present (registry, proxy, strict-ssl,
35
+ // cafile, per-registry _authToken, …). The prefix match is lowercased so
36
+ // uppercase variants (NPM_CONFIG_*) are caught too; keys keep their original
37
+ // casing, and redactValue/isSecretName are case-insensitive, so an
38
+ // _authToken key still redacts. Redaction handles the auth ones.
39
+ for (const key of Object.keys(env)) {
40
+ // Guard on a string value (same as the proxy loop) so a key present with
41
+ // an undefined value — e.g. a partial env object passed by a caller —
42
+ // doesn't surface as a misleading `npm_config_x = <unset>` entry.
43
+ if (typeof env[key] === "string" && key.toLowerCase().startsWith("npm_config_")) {
44
+ names.add(key);
45
+ }
46
+ }
47
+ const sorted = Array.from(names).sort();
48
+ return {
49
+ variables: sorted.map((name) => ({
50
+ name,
51
+ value: redactValue(name, env[name]),
52
+ })),
53
+ };
54
+ }
55
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/debug/network.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,qEAAqE;AACrE,yEAAyE;AACzE,sCAAsC;AACtC,EAAE;AACF,8DAA8D;AAC9D,6EAA6E;AAC7E,2EAA2E;AAC3E,mCAAmC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW1C,2EAA2E;AAC3E,2CAA2C;AAC3C,MAAM,UAAU,GAAG;IACjB,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,aAAa;IACb,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;CACZ,CAAC;AAEF,yEAAyE;AACzE,2EAA2E;AAC3E,MAAM,UAAU,oBAAoB,CAClC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IACD,qEAAqE;IACrE,yEAAyE;IACzE,6EAA6E;IAC7E,mEAAmE;IACnE,iEAAiE;IACjE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,yEAAyE;QACzE,sEAAsE;QACtE,kEAAkE;QAClE,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAChF,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/B,IAAI;YACJ,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;SACpC,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ export interface CliOverride {
2
+ flag: string;
3
+ configKey: string;
4
+ }
5
+ export interface Provenance {
6
+ configPath: string | null;
7
+ docDetectiveConfigApplied: boolean;
8
+ docDetectiveApiApplied: boolean;
9
+ cliOverrides: CliOverride[];
10
+ }
11
+ export declare function collectCliOverrides(args: any): CliOverride[];
12
+ export declare function collectProvenance(opts: {
13
+ configPath?: string | null;
14
+ args?: any;
15
+ env?: NodeJS.ProcessEnv;
16
+ }): Provenance;
17
+ //# sourceMappingURL=provenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/debug/provenance.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,WAAW;IAG1B,IAAI,EAAE,MAAM,CAAC;IAEb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,yBAAyB,EAAE,OAAO,CAAC;IAEnC,sBAAsB,EAAE,OAAO,CAAC;IAChC,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B;AAsGD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,WAAW,EAAE,CAa5D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,UAAU,CAWb"}
@@ -0,0 +1,132 @@
1
+ // Config provenance collector for the diagnostic dump.
2
+ //
3
+ // Answers "where did the effective config come from?" — the resolved config
4
+ // file path, whether DOC_DETECTIVE_CONFIG / DOC_DETECTIVE_API were applied,
5
+ // and which CLI flags overrode the validated config. This mirrors the
6
+ // documented precedence chain (file → env → AJV → CLI) in setConfig
7
+ // (src/utils.ts) WITHOUT threading new state out of setConfig: everything
8
+ // here is derived from inputs the debug command already has, which keeps
9
+ // setConfig untouched and this logic pure / unit-testable.
10
+ // Replicates setConfig's reporters guard exactly: `if (args.reporters != null)`
11
+ // then override only when `reporterList.length > 0`. Note setConfig does NOT
12
+ // drop empty-string entries here (unlike --test / --spec), so `[""]` length 1
13
+ // DOES override — `reportersPresent([""])` must return true to stay faithful.
14
+ // Don't be tempted to filter empties: that would make provenance claim
15
+ // "no override" while setConfig actually overrides with `[""]`.
16
+ function reportersPresent(reporters) {
17
+ if (reporters == null)
18
+ return false;
19
+ const list = Array.isArray(reporters) ? reporters : [reporters];
20
+ return list.length > 0;
21
+ }
22
+ // Replicates setConfig's --test / --spec guard: comma-split, trim, drop
23
+ // empties, override only when at least one entry survives. A value like ","
24
+ // or " " trims to nothing and does NOT override, so it must not be reported.
25
+ function commaListPresent(value) {
26
+ if (typeof value !== "string" || value.length === 0)
27
+ return false;
28
+ return (value
29
+ .split(",")
30
+ .map((s) => s.trim())
31
+ .filter((s) => s.length > 0).length > 0);
32
+ }
33
+ // Replicates setConfig's --concurrent-runners guard: the bare flag ("") and
34
+ // "true" select CPU-count mode, otherwise the value must parse to a positive
35
+ // integer; anything else (e.g. "abc", "0") logs a warning and does NOT
36
+ // override, so it must not be reported.
37
+ function concurrentRunnersPresent(value) {
38
+ if (typeof value !== "string")
39
+ return false;
40
+ if (value === "" || value.toLowerCase() === "true")
41
+ return true;
42
+ const count = Number(value);
43
+ return Number.isInteger(count) && count >= 1;
44
+ }
45
+ // The CLI overrides setConfig() applies. `flag` is the declared yargs option
46
+ // name (what the user types); `argKey` is the camelCased property yargs
47
+ // exposes on argv; `configKey` is where it lands after validation. The
48
+ // `present` guard mirrors the exact check in the corresponding setConfig
49
+ // override block so this report can't claim an override setConfig skipped.
50
+ //
51
+ // NOTE: this list must be kept in sync with the override blocks in setConfig()
52
+ // (src/utils.ts). `test/debug.test.js` pins the full set, but it only asserts
53
+ // that the recognized flags fire correctly — it does NOT cross-reference
54
+ // setConfig, so a new override added there without an entry here will silently
55
+ // omit from provenance. Adding a setConfig override means adding it here AND
56
+ // updating that pinned-list assertion. (CLAUDE.md's TDD-per-flag steps include
57
+ // this.)
58
+ const OVERRIDE_SPECS = [
59
+ { flag: "input", argKey: "input", configKey: "input", present: (a) => Boolean(a.input) },
60
+ { flag: "output", argKey: "output", configKey: "output", present: (a) => Boolean(a.output) },
61
+ { flag: "logLevel", argKey: "logLevel", configKey: "logLevel", present: (a) => Boolean(a.logLevel) },
62
+ {
63
+ flag: "allow-unsafe",
64
+ argKey: "allowUnsafe",
65
+ configKey: "allowUnsafeSteps",
66
+ present: (a) => typeof a.allowUnsafe === "boolean",
67
+ },
68
+ { flag: "dry-run", argKey: "dryRun", configKey: "dryRun", present: (a) => typeof a.dryRun === "boolean" },
69
+ { flag: "reporters", argKey: "reporters", configKey: "reporters", present: (a) => reportersPresent(a.reporters) },
70
+ { flag: "test", argKey: "test", configKey: "testFilter", present: (a) => commaListPresent(a.test) },
71
+ { flag: "spec", argKey: "spec", configKey: "specFilter", present: (a) => commaListPresent(a.spec) },
72
+ {
73
+ flag: "hints",
74
+ argKey: "hints",
75
+ configKey: "hints.enabled",
76
+ present: (a) => typeof a.hints === "boolean",
77
+ },
78
+ {
79
+ flag: "auto-update",
80
+ argKey: "autoUpdate",
81
+ configKey: "autoUpdate",
82
+ present: (a) => typeof a.autoUpdate === "boolean",
83
+ },
84
+ {
85
+ flag: "auto-screenshot",
86
+ argKey: "autoScreenshot",
87
+ configKey: "autoScreenshot",
88
+ present: (a) => typeof a.autoScreenshot === "boolean",
89
+ },
90
+ {
91
+ flag: "cache-dir",
92
+ argKey: "cacheDir",
93
+ configKey: "cacheDir",
94
+ present: (a) => typeof a.cacheDir === "string" && a.cacheDir.length > 0,
95
+ },
96
+ {
97
+ flag: "concurrent-runners",
98
+ argKey: "concurrentRunners",
99
+ configKey: "concurrentRunners",
100
+ present: (a) => concurrentRunnersPresent(a.concurrentRunners),
101
+ },
102
+ ];
103
+ export function collectCliOverrides(args) {
104
+ if (!args || typeof args !== "object")
105
+ return [];
106
+ const out = [];
107
+ for (const spec of OVERRIDE_SPECS) {
108
+ let present = false;
109
+ try {
110
+ present = spec.present(args);
111
+ }
112
+ catch {
113
+ present = false;
114
+ }
115
+ if (present)
116
+ out.push({ flag: spec.flag, configKey: spec.configKey });
117
+ }
118
+ return out;
119
+ }
120
+ export function collectProvenance(opts) {
121
+ const env = opts.env ?? process.env;
122
+ // Empty-string env vars do NOT apply: getConfigFromEnv() /
123
+ // getResolvedTestsFromEnv() both gate on `if (!process.env.*)`, so an empty
124
+ // value is treated as unset. Match that with a non-empty (truthy) check.
125
+ return {
126
+ configPath: opts.configPath ?? null,
127
+ docDetectiveConfigApplied: Boolean(env.DOC_DETECTIVE_CONFIG),
128
+ docDetectiveApiApplied: Boolean(env.DOC_DETECTIVE_API),
129
+ cliOverrides: collectCliOverrides(opts.args),
130
+ };
131
+ }
132
+ //# sourceMappingURL=provenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/debug/provenance.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "doc-detective",
3
- "version": "4.11.1",
3
+ "version": "4.12.0",
4
4
  "description": "Treat doc content as testable assertions to validate doc accuracy and product UX.",
5
5
  "bin": {
6
6
  "doc-detective": "bin/doc-detective.js",