@vyuhlabs/dxkit 2.5.2 → 2.7.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.
Files changed (264) hide show
  1. package/CHANGELOG.md +218 -13
  2. package/README.md +220 -369
  3. package/dist/allowlist/categories.d.ts +120 -0
  4. package/dist/allowlist/categories.d.ts.map +1 -0
  5. package/dist/allowlist/categories.js +194 -0
  6. package/dist/allowlist/categories.js.map +1 -0
  7. package/dist/allowlist/cli.d.ts +95 -0
  8. package/dist/allowlist/cli.d.ts.map +1 -0
  9. package/dist/allowlist/cli.js +454 -0
  10. package/dist/allowlist/cli.js.map +1 -0
  11. package/dist/allowlist/diff.d.ts +67 -0
  12. package/dist/allowlist/diff.d.ts.map +1 -0
  13. package/dist/allowlist/diff.js +147 -0
  14. package/dist/allowlist/diff.js.map +1 -0
  15. package/dist/allowlist/file.d.ts +249 -0
  16. package/dist/allowlist/file.d.ts.map +1 -0
  17. package/dist/allowlist/file.js +497 -0
  18. package/dist/allowlist/file.js.map +1 -0
  19. package/dist/allowlist/gather.d.ts +61 -0
  20. package/dist/allowlist/gather.d.ts.map +1 -0
  21. package/dist/allowlist/gather.js +143 -0
  22. package/dist/allowlist/gather.js.map +1 -0
  23. package/dist/allowlist/hint.d.ts +80 -0
  24. package/dist/allowlist/hint.d.ts.map +1 -0
  25. package/dist/allowlist/hint.js +271 -0
  26. package/dist/allowlist/hint.js.map +1 -0
  27. package/dist/allowlist/inline.d.ts +149 -0
  28. package/dist/allowlist/inline.d.ts.map +1 -0
  29. package/dist/allowlist/inline.js +306 -0
  30. package/dist/allowlist/inline.js.map +1 -0
  31. package/dist/analyzers/bom/discovery.d.ts +3 -4
  32. package/dist/analyzers/bom/discovery.d.ts.map +1 -1
  33. package/dist/analyzers/bom/discovery.js +3 -4
  34. package/dist/analyzers/bom/discovery.js.map +1 -1
  35. package/dist/analyzers/bom/types.d.ts +1 -1
  36. package/dist/analyzers/dashboard/index.d.ts.map +1 -1
  37. package/dist/analyzers/dashboard/index.js +42 -5
  38. package/dist/analyzers/dashboard/index.js.map +1 -1
  39. package/dist/analyzers/quality/detailed.d.ts +8 -1
  40. package/dist/analyzers/quality/detailed.d.ts.map +1 -1
  41. package/dist/analyzers/quality/detailed.js +43 -10
  42. package/dist/analyzers/quality/detailed.js.map +1 -1
  43. package/dist/analyzers/security/detailed.d.ts +8 -1
  44. package/dist/analyzers/security/detailed.d.ts.map +1 -1
  45. package/dist/analyzers/security/detailed.js +14 -1
  46. package/dist/analyzers/security/detailed.js.map +1 -1
  47. package/dist/analyzers/tests/detailed.d.ts +8 -1
  48. package/dist/analyzers/tests/detailed.d.ts.map +1 -1
  49. package/dist/analyzers/tests/detailed.js +26 -7
  50. package/dist/analyzers/tests/detailed.js.map +1 -1
  51. package/dist/analyzers/tools/cloc.js +3 -3
  52. package/dist/analyzers/tools/cloc.js.map +1 -1
  53. package/dist/analyzers/tools/exclusions.d.ts +12 -12
  54. package/dist/analyzers/tools/exclusions.d.ts.map +1 -1
  55. package/dist/analyzers/tools/exclusions.js +27 -13
  56. package/dist/analyzers/tools/exclusions.js.map +1 -1
  57. package/dist/analyzers/tools/graphify.d.ts +39 -5
  58. package/dist/analyzers/tools/graphify.d.ts.map +1 -1
  59. package/dist/analyzers/tools/graphify.js +609 -45
  60. package/dist/analyzers/tools/graphify.js.map +1 -1
  61. package/dist/analyzers/tools/nuget-package-reference.d.ts +4 -4
  62. package/dist/analyzers/tools/nuget-package-reference.js +4 -4
  63. package/dist/analyzers/tools/osv-scanner-fix.d.ts +4 -5
  64. package/dist/analyzers/tools/osv-scanner-fix.d.ts.map +1 -1
  65. package/dist/analyzers/tools/osv-scanner-fix.js +4 -5
  66. package/dist/analyzers/tools/osv-scanner-fix.js.map +1 -1
  67. package/dist/analyzers/tools/parallel.d.ts.map +1 -1
  68. package/dist/analyzers/tools/parallel.js +7 -0
  69. package/dist/analyzers/tools/parallel.js.map +1 -1
  70. package/dist/analyzers/tools/vendored-advisor.d.ts.map +1 -1
  71. package/dist/analyzers/tools/vendored-advisor.js +3 -4
  72. package/dist/analyzers/tools/vendored-advisor.js.map +1 -1
  73. package/dist/analyzers/xlsx/licenses.d.ts +7 -7
  74. package/dist/analyzers/xlsx/licenses.js +7 -7
  75. package/dist/baseline/baseline-file.d.ts +7 -0
  76. package/dist/baseline/baseline-file.d.ts.map +1 -1
  77. package/dist/baseline/baseline-file.js +22 -1
  78. package/dist/baseline/baseline-file.js.map +1 -1
  79. package/dist/baseline/check-renderers.d.ts +13 -1
  80. package/dist/baseline/check-renderers.d.ts.map +1 -1
  81. package/dist/baseline/check-renderers.js +67 -1
  82. package/dist/baseline/check-renderers.js.map +1 -1
  83. package/dist/baseline/check.d.ts +33 -7
  84. package/dist/baseline/check.d.ts.map +1 -1
  85. package/dist/baseline/check.js +90 -64
  86. package/dist/baseline/check.js.map +1 -1
  87. package/dist/baseline/create.d.ts +35 -7
  88. package/dist/baseline/create.d.ts.map +1 -1
  89. package/dist/baseline/create.js +43 -5
  90. package/dist/baseline/create.js.map +1 -1
  91. package/dist/baseline/entry-to-located.d.ts +6 -1
  92. package/dist/baseline/entry-to-located.d.ts.map +1 -1
  93. package/dist/baseline/entry-to-located.js +20 -2
  94. package/dist/baseline/entry-to-located.js.map +1 -1
  95. package/dist/baseline/finding-identity.d.ts.map +1 -1
  96. package/dist/baseline/finding-identity.js +15 -13
  97. package/dist/baseline/finding-identity.js.map +1 -1
  98. package/dist/baseline/modes.d.ts +140 -0
  99. package/dist/baseline/modes.d.ts.map +1 -0
  100. package/dist/baseline/modes.js +179 -0
  101. package/dist/baseline/modes.js.map +1 -0
  102. package/dist/baseline/policy.d.ts +64 -0
  103. package/dist/baseline/policy.d.ts.map +1 -1
  104. package/dist/baseline/policy.js +102 -1
  105. package/dist/baseline/policy.js.map +1 -1
  106. package/dist/baseline/producers/health.d.ts +2 -2
  107. package/dist/baseline/producers/health.d.ts.map +1 -1
  108. package/dist/baseline/producers/health.js.map +1 -1
  109. package/dist/baseline/producers/index.d.ts +11 -5
  110. package/dist/baseline/producers/index.d.ts.map +1 -1
  111. package/dist/baseline/producers/index.js +12 -9
  112. package/dist/baseline/producers/index.js.map +1 -1
  113. package/dist/baseline/producers/quality.d.ts +3 -3
  114. package/dist/baseline/producers/quality.d.ts.map +1 -1
  115. package/dist/baseline/producers/quality.js.map +1 -1
  116. package/dist/baseline/producers/secret-hmac.d.ts +2 -2
  117. package/dist/baseline/producers/secret-hmac.d.ts.map +1 -1
  118. package/dist/baseline/producers/secret-hmac.js.map +1 -1
  119. package/dist/baseline/producers/security.d.ts +2 -2
  120. package/dist/baseline/producers/security.d.ts.map +1 -1
  121. package/dist/baseline/producers/security.js.map +1 -1
  122. package/dist/baseline/producers/stale-allow.d.ts +70 -0
  123. package/dist/baseline/producers/stale-allow.d.ts.map +1 -0
  124. package/dist/baseline/producers/stale-allow.js +111 -0
  125. package/dist/baseline/producers/stale-allow.js.map +1 -0
  126. package/dist/baseline/producers/tests.d.ts +2 -2
  127. package/dist/baseline/producers/tests.d.ts.map +1 -1
  128. package/dist/baseline/producers/tests.js.map +1 -1
  129. package/dist/baseline/ref-baseline.d.ts +114 -0
  130. package/dist/baseline/ref-baseline.d.ts.map +1 -0
  131. package/dist/baseline/ref-baseline.js +260 -0
  132. package/dist/baseline/ref-baseline.js.map +1 -0
  133. package/dist/baseline/sanitize.d.ts +80 -0
  134. package/dist/baseline/sanitize.d.ts.map +1 -0
  135. package/dist/baseline/sanitize.js +91 -0
  136. package/dist/baseline/sanitize.js.map +1 -0
  137. package/dist/baseline/show.d.ts.map +1 -1
  138. package/dist/baseline/show.js +9 -3
  139. package/dist/baseline/show.js.map +1 -1
  140. package/dist/baseline/types.d.ts +73 -26
  141. package/dist/baseline/types.d.ts.map +1 -1
  142. package/dist/baseline/types.js +7 -1
  143. package/dist/baseline/types.js.map +1 -1
  144. package/dist/baseline/visibility.d.ts +61 -0
  145. package/dist/baseline/visibility.d.ts.map +1 -0
  146. package/dist/baseline/visibility.js +121 -0
  147. package/dist/baseline/visibility.js.map +1 -0
  148. package/dist/cli.d.ts.map +1 -1
  149. package/dist/cli.js +168 -6
  150. package/dist/cli.js.map +1 -1
  151. package/dist/dashboard/graph-adapter.d.ts +151 -0
  152. package/dist/dashboard/graph-adapter.d.ts.map +1 -0
  153. package/dist/dashboard/graph-adapter.js +415 -0
  154. package/dist/dashboard/graph-adapter.js.map +1 -0
  155. package/dist/dashboard/graph-tab.d.ts +109 -0
  156. package/dist/dashboard/graph-tab.d.ts.map +1 -0
  157. package/dist/dashboard/graph-tab.js +297 -0
  158. package/dist/dashboard/graph-tab.js.map +1 -0
  159. package/dist/dashboard/vendor/vis-network.min.js +34 -0
  160. package/dist/doctor.d.ts.map +1 -1
  161. package/dist/doctor.js +106 -16
  162. package/dist/doctor.js.map +1 -1
  163. package/dist/explore/cli/api-surface.d.ts +12 -0
  164. package/dist/explore/cli/api-surface.d.ts.map +1 -0
  165. package/dist/explore/cli/api-surface.js +57 -0
  166. package/dist/explore/cli/api-surface.js.map +1 -0
  167. package/dist/explore/cli/communities.d.ts +10 -0
  168. package/dist/explore/cli/communities.d.ts.map +1 -0
  169. package/dist/explore/cli/communities.js +47 -0
  170. package/dist/explore/cli/communities.js.map +1 -0
  171. package/dist/explore/cli/context.d.ts +16 -0
  172. package/dist/explore/cli/context.d.ts.map +1 -0
  173. package/dist/explore/cli/context.js +118 -0
  174. package/dist/explore/cli/context.js.map +1 -0
  175. package/dist/explore/cli/entry-points.d.ts +12 -0
  176. package/dist/explore/cli/entry-points.d.ts.map +1 -0
  177. package/dist/explore/cli/entry-points.js +85 -0
  178. package/dist/explore/cli/entry-points.js.map +1 -0
  179. package/dist/explore/cli/feature.d.ts +16 -0
  180. package/dist/explore/cli/feature.d.ts.map +1 -0
  181. package/dist/explore/cli/feature.js +89 -0
  182. package/dist/explore/cli/feature.js.map +1 -0
  183. package/dist/explore/cli/file.d.ts +12 -0
  184. package/dist/explore/cli/file.d.ts.map +1 -0
  185. package/dist/explore/cli/file.js +139 -0
  186. package/dist/explore/cli/file.js.map +1 -0
  187. package/dist/explore/cli/hot-files.d.ts +11 -0
  188. package/dist/explore/cli/hot-files.d.ts.map +1 -0
  189. package/dist/explore/cli/hot-files.js +63 -0
  190. package/dist/explore/cli/hot-files.js.map +1 -0
  191. package/dist/explore/context-hook.d.ts +42 -0
  192. package/dist/explore/context-hook.d.ts.map +1 -0
  193. package/dist/explore/context-hook.js +131 -0
  194. package/dist/explore/context-hook.js.map +1 -0
  195. package/dist/explore/finding-context.d.ts +69 -0
  196. package/dist/explore/finding-context.d.ts.map +1 -0
  197. package/dist/explore/finding-context.js +102 -0
  198. package/dist/explore/finding-context.js.map +1 -0
  199. package/dist/explore/format.d.ts +64 -0
  200. package/dist/explore/format.d.ts.map +1 -0
  201. package/dist/explore/format.js +99 -0
  202. package/dist/explore/format.js.map +1 -0
  203. package/dist/explore/load.d.ts +50 -0
  204. package/dist/explore/load.d.ts.map +1 -0
  205. package/dist/explore/load.js +197 -0
  206. package/dist/explore/load.js.map +1 -0
  207. package/dist/explore/queries.d.ts +413 -0
  208. package/dist/explore/queries.d.ts.map +1 -0
  209. package/dist/explore/queries.js +855 -0
  210. package/dist/explore/queries.js.map +1 -0
  211. package/dist/explore/types.d.ts +130 -0
  212. package/dist/explore/types.d.ts.map +1 -0
  213. package/dist/explore/types.js +28 -0
  214. package/dist/explore/types.js.map +1 -0
  215. package/dist/explore-cli.d.ts +45 -0
  216. package/dist/explore-cli.d.ts.map +1 -0
  217. package/dist/explore-cli.js +213 -0
  218. package/dist/explore-cli.js.map +1 -0
  219. package/dist/generator.d.ts.map +1 -1
  220. package/dist/generator.js +19 -0
  221. package/dist/generator.js.map +1 -1
  222. package/dist/issue-cli.d.ts +62 -0
  223. package/dist/issue-cli.d.ts.map +1 -0
  224. package/dist/issue-cli.js +252 -0
  225. package/dist/issue-cli.js.map +1 -0
  226. package/dist/languages/csharp.d.ts.map +1 -1
  227. package/dist/languages/csharp.js +32 -11
  228. package/dist/languages/csharp.js.map +1 -1
  229. package/dist/languages/go.d.ts.map +1 -1
  230. package/dist/languages/go.js +5 -0
  231. package/dist/languages/go.js.map +1 -1
  232. package/dist/languages/index.d.ts +27 -0
  233. package/dist/languages/index.d.ts.map +1 -1
  234. package/dist/languages/index.js +35 -0
  235. package/dist/languages/index.js.map +1 -1
  236. package/dist/languages/java.d.ts.map +1 -1
  237. package/dist/languages/java.js +5 -0
  238. package/dist/languages/java.js.map +1 -1
  239. package/dist/languages/kotlin.d.ts.map +1 -1
  240. package/dist/languages/kotlin.js +5 -0
  241. package/dist/languages/kotlin.js.map +1 -1
  242. package/dist/languages/python.d.ts.map +1 -1
  243. package/dist/languages/python.js +5 -0
  244. package/dist/languages/python.js.map +1 -1
  245. package/dist/languages/ruby.d.ts.map +1 -1
  246. package/dist/languages/ruby.js +5 -0
  247. package/dist/languages/ruby.js.map +1 -1
  248. package/dist/languages/rust.d.ts.map +1 -1
  249. package/dist/languages/rust.js +5 -0
  250. package/dist/languages/rust.js.map +1 -1
  251. package/dist/languages/types.d.ts +79 -0
  252. package/dist/languages/types.d.ts.map +1 -1
  253. package/dist/languages/typescript.d.ts.map +1 -1
  254. package/dist/languages/typescript.js +6 -1
  255. package/dist/languages/typescript.js.map +1 -1
  256. package/package.json +2 -1
  257. package/templates/.claude/skills/dxkit-action/SKILL.md +126 -12
  258. package/templates/.claude/skills/dxkit-onboard/SKILL.md +31 -3
  259. package/templates/.claude/skills/dxkit-reports/SKILL.md +3 -1
  260. package/templates/AGENTS.md.template +8 -1
  261. package/dist/baseline/producers/licenses.d.ts +0 -23
  262. package/dist/baseline/producers/licenses.d.ts.map +0 -1
  263. package/dist/baseline/producers/licenses.js +0 -46
  264. package/dist/baseline/producers/licenses.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,aAAa,CAAC;IACvC;;;;OAIG;IACH,GAAG,CAAC,EAAE;QACJ,yDAAyD;QACzD,IAAI,EAAE,MAAM,CAAC;QACb,yDAAyD;QACzD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,sEAAsE;QACtE,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE;QACP,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;SAAE,CAAC;QAC/D,EAAE,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,QAAQ,CAAA;SAAE,CAAC;QACxE,WAAW,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,CAAA;SAAE,CAAC;QAC/E;;;WAGG;QACH,OAAO,EAAE,WAAW,EAAE,CAAC;KACxB,CAAC;CACH;AAojBD,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAiCjG"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,aAAa,CAAC;IACvC;;;;OAIG;IACH,GAAG,CAAC,EAAE;QACJ,yDAAyD;QACzD,IAAI,EAAE,MAAM,CAAC;QACb,yDAAyD;QACzD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,sEAAsE;QACtE,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE;QACP,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;SAAE,CAAC;QAC/D,EAAE,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,QAAQ,CAAA;SAAE,CAAC;QACxE,WAAW,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,CAAA;SAAE,CAAC;QAC/E;;;WAGG;QACH,OAAO,EAAE,WAAW,EAAE,CAAC;KACxB,CAAC;CACH;AA8oBD,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAiCjG"}
package/dist/doctor.js CHANGED
@@ -39,6 +39,8 @@ const path = __importStar(require("path"));
39
39
  const child_process_1 = require("child_process");
40
40
  const languages_1 = require("./languages");
41
41
  const logger = __importStar(require("./logger"));
42
+ const modes_1 = require("./baseline/modes");
43
+ const policy_1 = require("./baseline/policy");
42
44
  function commandAvailable(cmd) {
43
45
  try {
44
46
  (0, child_process_1.execSync)(`which ${cmd} 2>/dev/null`, { stdio: 'pipe' });
@@ -53,6 +55,49 @@ function nodeMajorVersion() {
53
55
  const m = raw.match(/^(\d+)/);
54
56
  return m ? parseInt(m[1], 10) : 0;
55
57
  }
58
+ /**
59
+ * Wrap `loadPolicyFromCwd` with a swallowing try/catch — doctor
60
+ * checks must never throw on a malformed policy file (the customer
61
+ * would be unable to run doctor to discover that very fact). The
62
+ * "policy unreadable" condition surfaces separately via the
63
+ * existing scanner-toolchain / hooks checks.
64
+ */
65
+ function safeLoadPolicy(cwd) {
66
+ try {
67
+ return (0, policy_1.loadPolicyFromCwd)(cwd);
68
+ }
69
+ catch {
70
+ return null;
71
+ }
72
+ }
73
+ /**
74
+ * Detect mode/visibility misalignment when the customer has pinned
75
+ * `committed-full` on a public repo. Returns null when the pin is
76
+ * fine. Only fires when the pin came from policy or CLI — auto-
77
+ * picked modes are always aligned by definition.
78
+ */
79
+ function detectModeMisalignment(mode) {
80
+ // We can't read visibility directly here without triggering a
81
+ // duplicate `gh` probe. Instead we rely on the resolver's audit
82
+ // trail: when the customer pins `committed-full` AND the
83
+ // visibility-derived default would have been ref-based, that's
84
+ // the misalignment we want to flag. The resolver doesn't tell us
85
+ // what the auto-picker WOULD have chosen, so we re-probe here —
86
+ // the second probe is cache-warm and free.
87
+ if (mode.mode !== 'committed-full')
88
+ return null;
89
+ // Lazy import so non-baseline doctor runs don't pay the gh probe.
90
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
91
+ const { detectRepoVisibility } = require('./baseline/visibility');
92
+ const visibility = detectRepoVisibility(process.cwd());
93
+ if (visibility !== 'public')
94
+ return null;
95
+ return {
96
+ label: 'baseline mode pinned committed-full on a public repo',
97
+ hint: 'Public repos auto-pick ref-based for a reason: committed-full leaks file paths + package names + advisory IDs to anyone reading the repo. Switch to ref-based or committed-sanitized in .dxkit/policy.json.',
98
+ command: 'edit .dxkit/policy.json: set baseline.mode to ref-based or committed-sanitized',
99
+ };
100
+ }
56
101
  /**
57
102
  * `git config --local --get core.hooksPath` returns the configured
58
103
  * hooksPath for the current repo, or non-zero if unset. dxkit's
@@ -323,25 +368,70 @@ function runOperationalChecks(cwd, hasManifest) {
323
368
  }),
324
369
  });
325
370
  }
326
- // 2. Baseline captured. Without a baseline, `guardrail check` fails-
327
- // fast on every push. Requires .dxkit/baselines/main.json.
371
+ // 2. Baseline captured. Without a baseline, `guardrail check`
372
+ // fails-fast on every push. In `ref-based` mode the file is NOT
373
+ // expected on disk — the prior side is recomputed from a git ref
374
+ // — so the check passes when mode is ref-based AND the resolver
375
+ // can identify the ref.
328
376
  if (hasManifest) {
329
- const baselinePath = path.join(cwd, '.dxkit', 'baselines', 'main.json');
330
- const exists = fs.existsSync(baselinePath);
331
- checks.push({
332
- label: 'baseline captured (.dxkit/baselines/main.json)',
333
- ok: exists,
334
- tier: 'operational',
335
- ...(exists
336
- ? {}
337
- : {
377
+ const policy = safeLoadPolicy(cwd);
378
+ const mode = (0, modes_1.resolveBaselineMode)({
379
+ cwd,
380
+ policyMode: policy?.baseline?.mode,
381
+ policyRef: policy?.baseline?.ref,
382
+ });
383
+ if (mode.mode === 'ref-based') {
384
+ checks.push({
385
+ label: `baseline mode: ref-based (ref: ${mode.ref ?? 'origin/main'})`,
386
+ ok: true,
387
+ tier: 'operational',
388
+ });
389
+ }
390
+ else {
391
+ const baselinePath = path.join(cwd, '.dxkit', 'baselines', 'main.json');
392
+ const exists = fs.existsSync(baselinePath);
393
+ checks.push({
394
+ label: `baseline captured (.dxkit/baselines/main.json, mode: ${mode.mode})`,
395
+ ok: exists,
396
+ tier: 'operational',
397
+ ...(exists
398
+ ? {}
399
+ : {
400
+ fix: {
401
+ hint: "Capture today's state as the brownfield baseline. Existing findings get locked in; only net-new ones block thereafter.",
402
+ command: 'npx vyuh-dxkit baseline create',
403
+ skill: 'dxkit-init',
404
+ },
405
+ }),
406
+ });
407
+ }
408
+ // 2b. Baseline mode aligned with repo visibility. Warns when an
409
+ // explicit `committed-full` pin is in use on a public repo (the
410
+ // posture leaks file paths / package names / advisory IDs to
411
+ // anyone with read access). The auto-picker would have chosen
412
+ // ref-based; an explicit pin says the customer overrode that on
413
+ // purpose, so this is informational not failure.
414
+ if (mode.source === 'policy' || mode.source === 'cli') {
415
+ const alignmentWarning = detectModeMisalignment(mode);
416
+ if (alignmentWarning) {
417
+ checks.push({
418
+ label: alignmentWarning.label,
419
+ ok: false,
420
+ tier: 'operational',
338
421
  fix: {
339
- hint: "Capture today's state as the brownfield baseline. Existing findings get locked in; only net-new ones block thereafter.",
340
- command: 'npx vyuh-dxkit baseline create',
341
- skill: 'dxkit-init',
422
+ hint: alignmentWarning.hint,
423
+ command: alignmentWarning.command,
342
424
  },
343
- }),
344
- });
425
+ });
426
+ }
427
+ else {
428
+ checks.push({
429
+ label: `baseline mode aligned with repo visibility`,
430
+ ok: true,
431
+ tier: 'operational',
432
+ });
433
+ }
434
+ }
345
435
  }
346
436
  // 3. PATH integrity. The bare `vyuh-dxkit` command must resolve in
347
437
  // the customer's interactive shell — half the dxkit-* skill prose
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAutBA,8BAiCC;AAxvBD,uCAAyB;AACzB,2CAA6B;AAC7B,iDAAyC;AAEzC,2CAAuD;AACvD,iDAAmC;AACnC,4CAAuD;AACvD,8CAAsD;AAoEtD,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,SAAS,GAAG,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9B,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,OAAO,IAAA,0BAAiB,EAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAC7B,IAA4C;IAE5C,8DAA8D;IAC9D,gEAAgE;IAChE,yDAAyD;IACzD,+DAA+D;IAC/D,iEAAiE;IACjE,gEAAgE;IAChE,2CAA2C;IAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAChD,kEAAkE;IAClE,iEAAiE;IACjE,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAE/D,CAAC;IACF,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO;QACL,KAAK,EAAE,sDAAsD;QAC7D,IAAI,EAAE,6MAA6M;QACnN,OAAO,EAAE,gFAAgF;KAC1F,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,wBAAQ,EAAC,yCAAyC,EAAE;YAC9D,GAAG;YACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IACjE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAE3D,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC;aAC9D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,sBAAsB,CAAC,GAAW;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,uBAAuB,CAAC,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,sEAAsE;AACtE,8DAA8D;AAC9D,uEAAuE;AAEvE,SAAS,gBAAgB;IACvB,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACrC,OAAO;QACL;YACE,KAAK,EAAE,sBAAsB,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG;YACrD,EAAE,EAAE,SAAS,IAAI,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,GAAG,CAAC,SAAS,IAAI,EAAE;gBACjB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,GAAG,EAAE;wBACH,IAAI,EAAE,uEAAuE;wBAC7E,OAAO,EAAE,8BAA8B;qBACxC;iBACF,CAAC;SACP;QACD;YACE,KAAK,EAAE,KAAK;YACZ,EAAE,EAAE,gBAAgB,CAAC,KAAK,CAAC;YAC3B,IAAI,EAAE,SAAS;YACf,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC;gBACzB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,GAAG,EAAE;wBACH,IAAI,EAAE,+EAA+E;qBACtF;iBACF,CAAC;SACP;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,QAAyB,EAAE,WAAoB;IAC/E,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,MAAM,CAAC,IAAI,CAAC;QACV,KAAK,EAAE,yBAAyB;QAChC,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,IAAI;QACV,GAAG,CAAC,WAAW;YACb,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,GAAG,EAAE;oBACH,IAAI,EAAE,oEAAoE;oBAC1E,OAAO,EAAE,kCAAkC;oBAC3C,KAAK,EAAE,YAAY;iBACpB;aACF,CAAC;KACP,CAAC,CAAC;IAEH,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,gCAAgC;YACvC,EAAE,EAAE,QAAQ,KAAK,IAAI;YACrB,IAAI,EAAE,IAAI;YACV,GAAG,CAAC,QAAQ,KAAK,IAAI;gBACnB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,GAAG,EAAE;wBACH,IAAI,EAAE,2FAA2F;wBACjG,OAAO,EAAE,+BAA+B;qBACzC;iBACF,CAAC;SACP,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAA8C;QACzD,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE;QAC5C,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE;QAC5C,EAAE,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE;KACnF,CAAC;IACF,KAAK,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK;YACL,EAAE;YACF,IAAI,EAAE,IAAI;YACV,GAAG,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,GAAG,EAAE;wBACH,IAAI,EAAE,wFAAwF;wBAC9F,OAAO,EAAE,+CAA+C;wBACxD,KAAK,EAAE,YAAY;qBACpB;iBACF,CAAC;SACP,CAAC,CAAC;IACL,CAAC;IAED,MAAM,iBAAiB,GAAG;QACxB,aAAa;QACb,YAAY;QACZ,cAAc;QACd,aAAa;QACb,eAAe;QACf,cAAc;QACd,WAAW;QACX,cAAc;QACd,eAAe;KAChB,CAAC;IACF,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACtD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CACrE,CAAC;IACF,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,CAAC;IACtE,MAAM,CAAC,IAAI,CAAC;QACV,KAAK,EAAE,2BAA2B,aAAa,CAAC,MAAM,IAAI,iBAAiB,CAAC,MAAM,GAAG;QACrF,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,IAAI;QACV,GAAG,CAAC,WAAW;YACb,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,GAAG,EAAE;oBACH,IAAI,EAAE,GAAG,iBAAiB,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,mDAAmD;oBAC3G,OAAO,EAAE,uBAAuB;iBACjC;aACF,CAAC;KACP,CAAC,CAAC;IAEH,MAAM,YAAY,GAChB,QAAQ,EAAE,MAAM,EAAE,SAAS;QAC3B,IAAA,oCAAwB,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpE,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,gBAAgB;YACvB,EAAE;YACF,IAAI,EAAE,IAAI;YACV,GAAG,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,GAAG,EAAE;wBACH,IAAI,EAAE,yDAAyD;wBAC/D,OAAO,EAAE,uBAAuB;qBACjC;iBACF,CAAC;SACP,CAAC,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAChE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,6BAA6B;YACpC,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,IAAI;YACV,GAAG,CAAC,KAAK;gBACP,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,GAAG,EAAE;wBACH,IAAI,EAAE,8FAA8F;wBACpG,OAAO,EAAE,+BAA+B;qBACzC;iBACF,CAAC;SACP,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAChC,KAAK,MAAM,IAAI,IAAI,IAAA,oCAAwB,EAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;gBACzC,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,GAAG;oBACV,EAAE;oBACF,IAAI,EAAE,IAAI;oBACV,GAAG,CAAC,EAAE;wBACJ,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC;4BACE,GAAG,EAAE;gCACH,IAAI,EAAE,GAAG,GAAG,kBAAkB,IAAI,CAAC,EAAE,4CAA4C;6BAClF;yBACF,CAAC;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW,EAAE,WAAoB;IAC7D,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,qEAAqE;IACrE,mEAAmE;IACnE,oEAAoE;IACpE,0CAA0C;IAC1C,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9E,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,SAAS,KAAK,WAAW,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,+CAA+C;YACtD,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,aAAa;YACnB,GAAG,CAAC,MAAM;gBACR,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,GAAG,EAAE;wBACH,IAAI,EAAE,qEAAqE;wBAC3E,OAAO,EAAE,+BAA+B;wBACxC,KAAK,EAAE,aAAa;qBACrB;iBACF,CAAC;SACP,CAAC,CAAC;IACL,CAAC;IAED,8DAA8D;IAC9D,gEAAgE;IAChE,iEAAiE;IACjE,gEAAgE;IAChE,wBAAwB;IACxB,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAA,2BAAmB,EAAC;YAC/B,GAAG;YACH,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI;YAClC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;SACjC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,kCAAkC,IAAI,CAAC,GAAG,IAAI,aAAa,GAAG;gBACrE,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,aAAa;aACpB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,wDAAwD,IAAI,CAAC,IAAI,GAAG;gBAC3E,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,aAAa;gBACnB,GAAG,CAAC,MAAM;oBACR,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC;wBACE,GAAG,EAAE;4BACH,IAAI,EAAE,wHAAwH;4BAC9H,OAAO,EAAE,gCAAgC;4BACzC,KAAK,EAAE,YAAY;yBACpB;qBACF,CAAC;aACP,CAAC,CAAC;QACL,CAAC;QAED,gEAAgE;QAChE,gEAAgE;QAChE,6DAA6D;QAC7D,8DAA8D;QAC9D,gEAAgE;QAChE,iDAAiD;QACjD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACtD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,gBAAgB,CAAC,KAAK;oBAC7B,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,aAAa;oBACnB,GAAG,EAAE;wBACH,IAAI,EAAE,gBAAgB,CAAC,IAAI;wBAC3B,OAAO,EAAE,gBAAgB,CAAC,OAAO;qBAClC;iBACF,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,4CAA4C;oBACnD,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,aAAa;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,kEAAkE;IAClE,oEAAoE;IACpE,gCAAgC;IAChC,MAAM,MAAM,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,CAAC,IAAI,CAAC;QACV,KAAK,EAAE,oBAAoB;QAC3B,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,aAAa;QACnB,GAAG,CAAC,MAAM;YACR,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,GAAG,EAAE;oBACH,IAAI,EAAE,oEAAoE;oBAC1E,OAAO,EAAE,gCAAgC;oBACzC,KAAK,EAAE,WAAW;iBACnB;aACF,CAAC;KACP,CAAC,CAAC;IAEH,mEAAmE;IACnE,kEAAkE;IAClE,mEAAmE;IACnE,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,sBAAsB,WAAW,CAAC,MAAM,CAAC,MAAM,aAAa,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG;YAC5J,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,aAAa;YACnB,GAAG,EAAE;gBACH,IAAI,EAAE,kEAAkE;gBACxE,OAAO,EAAE,oCAAoC;gBAC7C,KAAK,EAAE,WAAW;aACnB;SACF,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,2BAA2B;YAClC,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;IACL,CAAC;IAED,kEAAkE;IAClE,kEAAkE;IAClE,yCAAyC;IACzC,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;IACpE,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC7C,iEAAiE;QACjE,2DAA2D;QAC3D,4DAA4D;QAC5D,wCAAwC;QACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,qCAAqC;gBAC5C,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,aAAa;gBACnB,GAAG,EAAE;oBACH,IAAI,EAAE,wGAAwG;oBAC9G,OAAO,EAAE,wCAAwC;oBACjD,KAAK,EAAE,WAAW;iBACnB;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,2DAA2D;IAC3D,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,sBAAsB,CAAC,CAAC;QACnF,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,iEAAiE;YACxE,EAAE;YACF,IAAI,EAAE,aAAa;YACnB,GAAG,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,GAAG,EAAE;wBACH,IAAI,EAAE,uFAAuF;wBAC7F,OAAO,EAAE,qCAAqC;wBAC9C,KAAK,EAAE,YAAY;qBACpB;iBACF,CAAC;SACP,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,uEAAuE;AACvE,YAAY;AACZ,uEAAuE;AAEvE,SAAS,WAAW,CAAC,GAAW,EAAE,MAAqB;IACrD,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;QACnD,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;QACzC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;KAC5D,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,GAAkB,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM;QACpC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM;KACtC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAE1C,OAAO;QACL,MAAM,EAAE,WAAW;QACnB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,GAAG;QACH,MAAM;QACN,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,GAAG,YAAY;gBACf,MAAM,EAAE,YAAY,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;aAChD;YACD,EAAE,EAAE;gBACF,GAAG,OAAO;gBACV,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;aAClF;YACD,WAAW,EAAE;gBACX,GAAG,OAAO;gBACV,MAAM,EACJ,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;oBAC7B,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;wBAClB,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,CAAC,MAAM;4BAC1C,CAAC,CAAC,MAAM;4BACR,CAAC,CAAC,SAAS;aACpB;YACD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;SAC9C;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAoB,EAAE,WAAoB;IAC7D,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAEnC,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;QAC1D,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;QAChD,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;KACnE,CAAC;IAEF,SAAS;IACT,MAAM,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IAC1E,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC,EAAE;YAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;;YAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,SAAS;IACT,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;QAC3B,MAAM,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;QACtF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,CAAC,EAAE;gBAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;;gBAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,SAAS;IACT,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;QAC3B,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACnE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC,CAAC,EAAE;gBAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;;gBAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,UAAU;IACV,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;IAC3B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEzB,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;IACjC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,uBAAuB,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CACT,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,+DAA+D,CACrG,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;IAClC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,IAAI,IAAI,OAAO,qBAAqB,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,IAAI,OAAO,wBAAwB,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;IACtC,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;IAClC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,IAAI,IAAI,OAAO,gCAAgC,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,IAAI,IAAI,OAAO,MAAM,EAAE,CAAC,IAAI,sBAAsB,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;QAC3B,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;YACjD,IAAI,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;QAC3B,MAAM,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;IAC9F,CAAC;SAAM,IAAI,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC7C,kEAAkE;QAClE,oCAAoC;QACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,CACR,sHAAsH,CACvH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CACR,6FAA6F,CAC9F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;AAC7B,CAAC;AAED,uEAAuE;AACvE,cAAc;AACd,uEAAuE;AAEhE,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,OAA2B,EAAE;IACxE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,QAAQ,GAAoB,IAAI,CAAC;IACrC,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAkB;QAC5B,GAAG,gBAAgB,EAAE;QACrB,GAAG,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC;QAC1C,GAAG,oBAAoB,CAAC,GAAG,EAAE,WAAW,CAAC;KAC1C,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAExC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,uEAAuE;QACvE,qDAAqD;QACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;IAC1D,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC7C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `vyuh-dxkit explore api-surface` — exported symbols with no
3
+ * internal callers (likely public API or CLI entry points).
4
+ *
5
+ * Reads per-pack exportDetection reliability from the canonical
6
+ * registry helper. Packs declared 'unreliable' (today: ruby) are
7
+ * excluded with an explanatory note.
8
+ */
9
+ import type { Graph } from '../types';
10
+ import type { ExploreCliValues } from '../../explore-cli';
11
+ export declare function runApiSurface(graph: Graph, _positionals: ReadonlyArray<string>, values: ExploreCliValues): void;
12
+ //# sourceMappingURL=api-surface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-surface.d.ts","sourceRoot":"","sources":["../../../src/explore/cli/api-surface.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,wBAAgB,aAAa,CAC3B,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EACnC,MAAM,EAAE,gBAAgB,GACvB,IAAI,CAuDN"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ /**
3
+ * `vyuh-dxkit explore api-surface` — exported symbols with no
4
+ * internal callers (likely public API or CLI entry points).
5
+ *
6
+ * Reads per-pack exportDetection reliability from the canonical
7
+ * registry helper. Packs declared 'unreliable' (today: ruby) are
8
+ * excluded with an explanatory note.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.runApiSurface = runApiSurface;
12
+ const languages_1 = require("../../languages");
13
+ const queries_1 = require("../queries");
14
+ const format_1 = require("../format");
15
+ const DEFAULT_LIMIT = 25;
16
+ function runApiSurface(graph, _positionals, values) {
17
+ const limit = parseLimit(values.limit, DEFAULT_LIMIT);
18
+ const declarations = (0, languages_1.allExportDetectionDeclarations)();
19
+ const unreliablePacks = declarations
20
+ .filter((d) => d.reliability === 'unreliable')
21
+ .map((d) => ({ pack: d.pack, strategy: d.strategy }));
22
+ const packsExcluded = unreliablePacks.map((u) => u.pack);
23
+ const results = (0, queries_1.apiSurfaceQuery)(graph, packsExcluded, limit);
24
+ if (values.json) {
25
+ (0, format_1.printJson)((0, format_1.envelope)('explore.api-surface', { limit, excluded: unreliablePacks }, graph, results));
26
+ return;
27
+ }
28
+ const sections = [];
29
+ sections.push((0, format_1.markdownHeader)('API surface', 'exported symbols with no internal callers', graph));
30
+ if (unreliablePacks.length > 0) {
31
+ sections.push(`*Excluded packs* (export detection unreliable): ` +
32
+ unreliablePacks.map((u) => `**${u.pack}** (${u.strategy})`).join('; '));
33
+ }
34
+ if (results.length === 0) {
35
+ sections.push('No exported symbols without internal callers found. Either the codebase has no public API surface graphify could detect, or every exported symbol has at least one internal caller.');
36
+ (0, format_1.printMarkdown)(...sections);
37
+ return;
38
+ }
39
+ sections.push((0, format_1.markdownTable)(['Path', 'Symbol', 'Kind', 'Pack'], results.map((r) => ({
40
+ Path: r.line ? `${r.sourceFile}:${r.line}` : r.sourceFile,
41
+ Symbol: r.symbol,
42
+ Kind: r.kind,
43
+ Pack: r.pack,
44
+ }))));
45
+ sections.push('These are likely public API or CLI entry points. Verify before deleting — a missing internal caller can mean "external consumer only" rather than "dead code." Future releases will add a dedicated dead-code analyzer with stronger heuristics.');
46
+ sections.push((0, format_1.markdownFooter)('Drill into one: `vyuh-dxkit explore file <path>`.'));
47
+ (0, format_1.printMarkdown)(...sections);
48
+ }
49
+ function parseLimit(raw, defaultValue) {
50
+ if (!raw)
51
+ return defaultValue;
52
+ const n = parseInt(raw, 10);
53
+ if (isNaN(n) || n < 1)
54
+ return defaultValue;
55
+ return Math.min(n, 1000);
56
+ }
57
+ //# sourceMappingURL=api-surface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-surface.js","sourceRoot":"","sources":["../../../src/explore/cli/api-surface.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAiBH,sCA2DC;AA1ED,+CAAiE;AACjE,wCAA6C;AAC7C,sCAOmB;AAInB,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,SAAgB,aAAa,CAC3B,KAAY,EACZ,YAAmC,EACnC,MAAwB;IAExB,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAEtD,MAAM,YAAY,GAAG,IAAA,0CAA8B,GAAE,CAAC;IACtD,MAAM,eAAe,GAAG,YAAY;SACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,YAAY,CAAC;SAC7C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,IAAA,yBAAe,EAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;IAE7D,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,IAAA,kBAAS,EACP,IAAA,iBAAQ,EAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CACtF,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,IAAA,uBAAc,EAAC,aAAa,EAAE,2CAA2C,EAAE,KAAK,CAAC,CAAC,CAAC;IAEjG,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CACX,kDAAkD;YAChD,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACzE,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CACX,qLAAqL,CACtL,CAAC;QACF,IAAA,sBAAa,EAAC,GAAG,QAAQ,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,IAAI,CACX,IAAA,sBAAa,EACX,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAU,EAC3C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;QACzD,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC,CAAC,CACJ,CACF,CAAC;IAEF,QAAQ,CAAC,IAAI,CACX,kPAAkP,CACnP,CAAC;IAEF,QAAQ,CAAC,IAAI,CAAC,IAAA,uBAAc,EAAC,mDAAmD,CAAC,CAAC,CAAC;IAEnF,IAAA,sBAAa,EAAC,GAAG,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,UAAU,CAAC,GAAuB,EAAE,YAAoB;IAC/D,IAAI,CAAC,GAAG;QAAE,OAAO,YAAY,CAAC;IAC9B,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC;IAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * `vyuh-dxkit explore communities` — natural-module summary.
3
+ *
4
+ * Pure pipeline: parse args → call communitiesQuery → format output.
5
+ * Per CLAUDE.md Rule 12: graph traversal flows through queries.ts.
6
+ */
7
+ import type { Graph } from '../types';
8
+ import type { ExploreCliValues } from '../../explore-cli';
9
+ export declare function runCommunities(graph: Graph, _positionals: ReadonlyArray<string>, values: ExploreCliValues): void;
10
+ //# sourceMappingURL=communities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"communities.d.ts","sourceRoot":"","sources":["../../../src/explore/cli/communities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EACnC,MAAM,EAAE,gBAAgB,GACvB,IAAI,CAgCN"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ /**
3
+ * `vyuh-dxkit explore communities` — natural-module summary.
4
+ *
5
+ * Pure pipeline: parse args → call communitiesQuery → format output.
6
+ * Per CLAUDE.md Rule 12: graph traversal flows through queries.ts.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.runCommunities = runCommunities;
10
+ const queries_1 = require("../queries");
11
+ const format_1 = require("../format");
12
+ const DEFAULT_LIMIT = 8;
13
+ function runCommunities(graph, _positionals, values) {
14
+ const limit = parseLimit(values.limit, DEFAULT_LIMIT);
15
+ const results = (0, queries_1.communitiesQuery)(graph, limit);
16
+ if (values.json) {
17
+ (0, format_1.printJson)((0, format_1.envelope)('explore.communities', { limit }, graph, results));
18
+ return;
19
+ }
20
+ if (results.length === 0) {
21
+ (0, format_1.printMarkdown)((0, format_1.markdownHeader)('Communities', 'natural modules in this repo', graph), 'No communities found in the graph. Either the repo is too small for Louvain clustering to find structure, or the graph artifact is empty.');
22
+ return;
23
+ }
24
+ const rows = results.map((r) => ({
25
+ ID: r.id,
26
+ Dir: r.dominantSourceDir || '—',
27
+ Pack: r.dominantPack || '—',
28
+ Nodes: r.nodeCount,
29
+ Cohesion: r.cohesion.toFixed(2),
30
+ 'Top hot files': r.topHotFiles.map((f) => basename(f)).join(', ') || '—',
31
+ }));
32
+ const headers = ['ID', 'Dir', 'Pack', 'Nodes', 'Cohesion', 'Top hot files'];
33
+ (0, format_1.printMarkdown)((0, format_1.markdownHeader)('Communities', 'natural modules in this repo', graph), (0, format_1.markdownTable)(headers, rows), (0, format_1.markdownFooter)("Drill into a community's central file: `vyuh-dxkit explore file <path>`."));
34
+ }
35
+ function basename(p) {
36
+ const i = p.lastIndexOf('/');
37
+ return i >= 0 ? p.slice(i + 1) : p;
38
+ }
39
+ function parseLimit(raw, defaultValue) {
40
+ if (!raw)
41
+ return defaultValue;
42
+ const n = parseInt(raw, 10);
43
+ if (isNaN(n) || n < 1)
44
+ return defaultValue;
45
+ return Math.min(n, 1000);
46
+ }
47
+ //# sourceMappingURL=communities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"communities.js","sourceRoot":"","sources":["../../../src/explore/cli/communities.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAgBH,wCAoCC;AAlDD,wCAA8C;AAC9C,sCAOmB;AAInB,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,SAAgB,cAAc,CAC5B,KAAY,EACZ,YAAmC,EACnC,MAAwB;IAExB,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,IAAA,0BAAgB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAE/C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,IAAA,kBAAS,EAAC,IAAA,iBAAQ,EAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,IAAA,sBAAa,EACX,IAAA,uBAAc,EAAC,aAAa,EAAE,8BAA8B,EAAE,KAAK,CAAC,EACpE,2IAA2I,CAC5I,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/B,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,GAAG,EAAE,CAAC,CAAC,iBAAiB,IAAI,GAAG;QAC/B,IAAI,EAAE,CAAC,CAAC,YAAY,IAAI,GAAG;QAC3B,KAAK,EAAE,CAAC,CAAC,SAAS;QAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/B,eAAe,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG;KACzE,CAAC,CAAC,CAAC;IACJ,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,CAAU,CAAC;IAErF,IAAA,sBAAa,EACX,IAAA,uBAAc,EAAC,aAAa,EAAE,8BAA8B,EAAE,KAAK,CAAC,EACpE,IAAA,sBAAa,EAAC,OAAO,EAAE,IAAI,CAAC,EAC5B,IAAA,uBAAc,EAAC,0EAA0E,CAAC,CAC3F,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS;IACzB,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,UAAU,CAAC,GAAuB,EAAE,YAAoB;IAC/D,IAAI,CAAC,GAAG;QAAE,OAAO,YAAY,CAAC;IAC9B,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC;IAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `vyuh-dxkit context <query>` — the token-reduction surface. Returns
3
+ * a slim, relevance-ranked structural slice for a query instead of the
4
+ * full-file dump an agent would otherwise grep + read. Same payload
5
+ * serves the human at a terminal and the LLM via the PreToolUse hook.
6
+ *
7
+ * Output is lean markdown by default (LLMs parse it natively + it's
8
+ * more token-efficient than JSON); `--json` emits the stable envelope
9
+ * for pipelines. The content is anchor-first ("start here"), grouped
10
+ * by community for orientation, framed by blast radius, and honest
11
+ * about truncation + same-name conflation.
12
+ */
13
+ import type { Graph } from '../types';
14
+ import type { ExploreCliValues } from '../../explore-cli';
15
+ export declare function runContext(graph: Graph, positionals: ReadonlyArray<string>, values: ExploreCliValues): void;
16
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/explore/cli/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,MAAM,EAAE,gBAAgB,GACvB,IAAI,CAyGN"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ /**
3
+ * `vyuh-dxkit context <query>` — the token-reduction surface. Returns
4
+ * a slim, relevance-ranked structural slice for a query instead of the
5
+ * full-file dump an agent would otherwise grep + read. Same payload
6
+ * serves the human at a terminal and the LLM via the PreToolUse hook.
7
+ *
8
+ * Output is lean markdown by default (LLMs parse it natively + it's
9
+ * more token-efficient than JSON); `--json` emits the stable envelope
10
+ * for pipelines. The content is anchor-first ("start here"), grouped
11
+ * by community for orientation, framed by blast radius, and honest
12
+ * about truncation + same-name conflation.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.runContext = runContext;
16
+ const queries_1 = require("../queries");
17
+ const format_1 = require("../format");
18
+ const DEFAULT_BUDGET = 2000;
19
+ function runContext(graph, positionals, values) {
20
+ const keyword = positionals[0];
21
+ if (!keyword) {
22
+ process.stderr.write('Usage: vyuh-dxkit context <query> [--substring] [--budget 2000] [--depth N] [--json]\n');
23
+ process.exit(1);
24
+ }
25
+ const budget = parsePositiveInt(values.budget, DEFAULT_BUDGET);
26
+ const depth = values.depth !== undefined ? parsePositiveInt(values.depth, Infinity) : undefined;
27
+ const substring = !!values.substring;
28
+ const result = (0, queries_1.contextQuery)(graph, keyword, { budget, substring, maxDepth: depth });
29
+ if (values.json) {
30
+ (0, format_1.printJson)((0, format_1.envelope)('context', { query: keyword, budget, substring, depth: depth ?? null }, graph, result));
31
+ return;
32
+ }
33
+ const sections = [(0, format_1.markdownHeader)('Context', `\`${keyword}\``, graph)];
34
+ if (!result.matched) {
35
+ if (result.suggestions.length > 0) {
36
+ const lines = result.suggestions
37
+ .map((s) => ` - \`${s.key}\` (${s.hits} hit${s.hits === 1 ? '' : 's'})`)
38
+ .join('\n');
39
+ sections.push(`No symbols matched \`${keyword}\`. Did you mean:\n\n${lines}\n\nRerun with \`--substring\` to expand from these, or pick one above.`);
40
+ }
41
+ else {
42
+ sections.push(`No symbols matched \`${keyword}\` (no close alternatives either). Try a different keyword or \`--substring\` for broader matching.`);
43
+ }
44
+ (0, format_1.printMarkdown)(...sections);
45
+ return;
46
+ }
47
+ // Anchor — the "start here" line.
48
+ if (result.anchor) {
49
+ const a = result.anchor;
50
+ const where = a.line ? `${a.sourceFile}:${a.line}` : a.sourceFile;
51
+ sections.push(`**Start here:** \`${a.symbol}\` — \`${where}\` (called from ${a.calledFrom} place${a.calledFrom === 1 ? '' : 's'}).`);
52
+ }
53
+ // Blast radius — change-impact framing.
54
+ const { callers, callerFiles } = result.blastRadius;
55
+ if (callers > 0) {
56
+ sections.push(`**Blast radius:** changing the matched symbol${result.selection.some((s) => s.hop === 0) ? '(s)' : ''} touches ${callers} caller${callers === 1 ? '' : 's'} across ${callerFiles} file${callerFiles === 1 ? '' : 's'}.`);
57
+ }
58
+ else {
59
+ sections.push('**Blast radius:** no internal callers — likely an entry point or public API.');
60
+ }
61
+ // Community-grouped symbol listing (orientation). Each group is
62
+ // ranked seeds-first then by call in-degree, and capped for
63
+ // readability — the markdown is a scannable map, not an exhaustive
64
+ // dump. The full selection is always available via `--json`.
65
+ const PER_COMMUNITY_CAP = 12;
66
+ for (const group of result.byCommunity) {
67
+ const heading = group.communityId !== undefined
68
+ ? `### ${group.role} (community ${group.communityId})`
69
+ : `### ${group.role}`;
70
+ const lines = [heading];
71
+ const groupSel = dedupeBySymbol(result.selection
72
+ .filter((s) => group.symbols.includes(s.symbol))
73
+ .sort((a, b) => a.hop - b.hop || b.callsIn - a.callsIn));
74
+ for (const s of groupSel.slice(0, PER_COMMUNITY_CAP)) {
75
+ const where = s.line ? `${s.sourceFile}:${s.line}` : s.sourceFile;
76
+ const seed = s.hop === 0 ? ' _[seed]_' : '';
77
+ lines.push(`- \`${s.symbol}\` — \`${where}\` (${s.callsIn} in / ${s.callsOut} out)${seed}`);
78
+ }
79
+ if (groupSel.length > PER_COMMUNITY_CAP) {
80
+ lines.push(`- _+${groupSel.length - PER_COMMUNITY_CAP} more in this cluster_`);
81
+ }
82
+ sections.push(lines.join('\n'));
83
+ }
84
+ // Honest truncation footer.
85
+ if (result.truncated) {
86
+ sections.push(`_+${result.omittedCount} more symbol${result.omittedCount === 1 ? '' : 's'} omitted to fit the ${result.budget}-token budget — narrow the query or raise \`--budget\`._`);
87
+ }
88
+ // Same-name conflation caveat — only when there's any risk worth noting.
89
+ sections.push('_Note: graphify conflates same-name symbols across files, so call counts are best-effort._');
90
+ (0, format_1.printMarkdown)(...sections);
91
+ }
92
+ /**
93
+ * Collapse repeated symbol names within a community group. The BFS can
94
+ * surface the same stripped label from two different files (graphify's
95
+ * same-name conflation); the listing keeps the first (lowest-hop)
96
+ * occurrence so the output stays scannable.
97
+ */
98
+ function dedupeBySymbol(nodes) {
99
+ const seen = new Set();
100
+ const out = [];
101
+ for (const n of nodes) {
102
+ const key = `${n.symbol}\x00${n.sourceFile}`;
103
+ if (seen.has(key))
104
+ continue;
105
+ seen.add(key);
106
+ out.push(n);
107
+ }
108
+ return out;
109
+ }
110
+ function parsePositiveInt(raw, defaultValue) {
111
+ if (!raw)
112
+ return defaultValue;
113
+ const n = parseInt(raw, 10);
114
+ if (isNaN(n) || n < 1)
115
+ return defaultValue;
116
+ return n;
117
+ }
118
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/explore/cli/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `vyuh-dxkit explore entry-points` — what does this repo do?
3
+ *
4
+ * Cross-references graph nodes with the active packs'
5
+ * architecturalShape (per CLAUDE.md Rule 8 — no hardcoded framework
6
+ * strings here). Detects the project's stack via `detect(cwd)` so
7
+ * only active-pack patterns contribute.
8
+ */
9
+ import type { Graph } from '../types';
10
+ import type { ExploreCliValues } from '../../explore-cli';
11
+ export declare function runEntryPoints(graph: Graph, _positionals: ReadonlyArray<string>, values: ExploreCliValues, cwd: string): void;
12
+ //# sourceMappingURL=entry-points.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry-points.d.ts","sourceRoot":"","sources":["../../../src/explore/cli/entry-points.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EACnC,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,MAAM,GACV,IAAI,CAgFN"}