dsh-gitnexus-plus 0.0.0-stage → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/LICENSE +38 -0
  2. package/README.md +631 -2
  3. package/cordis.patch.yml +18 -0
  4. package/lib/bin/gitnexus-coverage.d.ts +14 -0
  5. package/lib/bin/gitnexus-coverage.d.ts.map +1 -0
  6. package/lib/bin/gitnexus-coverage.js +171 -0
  7. package/lib/bin/gitnexus-coverage.js.map +1 -0
  8. package/lib/bin/search-helper.d.ts +22 -0
  9. package/lib/bin/search-helper.d.ts.map +1 -0
  10. package/lib/bin/search-helper.js +57 -0
  11. package/lib/bin/search-helper.js.map +1 -0
  12. package/lib/client.js +2131 -0
  13. package/lib/gitnexus/analyze.d.ts +173 -0
  14. package/lib/gitnexus/analyze.d.ts.map +1 -0
  15. package/lib/gitnexus/analyze.js +308 -0
  16. package/lib/gitnexus/analyze.js.map +1 -0
  17. package/lib/gitnexus/commands.d.ts +129 -0
  18. package/lib/gitnexus/commands.d.ts.map +1 -0
  19. package/lib/gitnexus/commands.js +185 -0
  20. package/lib/gitnexus/commands.js.map +1 -0
  21. package/lib/gitnexus/coverage.d.ts +340 -0
  22. package/lib/gitnexus/coverage.d.ts.map +1 -0
  23. package/lib/gitnexus/coverage.js +554 -0
  24. package/lib/gitnexus/coverage.js.map +1 -0
  25. package/lib/gitnexus/format.d.ts +16 -0
  26. package/lib/gitnexus/format.d.ts.map +1 -0
  27. package/lib/gitnexus/format.js +178 -0
  28. package/lib/gitnexus/format.js.map +1 -0
  29. package/lib/gitnexus/git-activity.d.ts +136 -0
  30. package/lib/gitnexus/git-activity.d.ts.map +1 -0
  31. package/lib/gitnexus/git-activity.js +345 -0
  32. package/lib/gitnexus/git-activity.js.map +1 -0
  33. package/lib/gitnexus/git.d.ts +70 -0
  34. package/lib/gitnexus/git.d.ts.map +1 -0
  35. package/lib/gitnexus/git.js +121 -0
  36. package/lib/gitnexus/git.js.map +1 -0
  37. package/lib/gitnexus/index-meta.d.ts +160 -0
  38. package/lib/gitnexus/index-meta.d.ts.map +1 -0
  39. package/lib/gitnexus/index-meta.js +176 -0
  40. package/lib/gitnexus/index-meta.js.map +1 -0
  41. package/lib/gitnexus/install.d.ts +97 -0
  42. package/lib/gitnexus/install.d.ts.map +1 -0
  43. package/lib/gitnexus/install.js +228 -0
  44. package/lib/gitnexus/install.js.map +1 -0
  45. package/lib/gitnexus/languages.d.ts +80 -0
  46. package/lib/gitnexus/languages.d.ts.map +1 -0
  47. package/lib/gitnexus/languages.js +297 -0
  48. package/lib/gitnexus/languages.js.map +1 -0
  49. package/lib/gitnexus/root.d.ts +74 -0
  50. package/lib/gitnexus/root.d.ts.map +1 -0
  51. package/lib/gitnexus/root.js +168 -0
  52. package/lib/gitnexus/root.js.map +1 -0
  53. package/lib/gitnexus/scan.d.ts +68 -0
  54. package/lib/gitnexus/scan.d.ts.map +1 -0
  55. package/lib/gitnexus/scan.js +249 -0
  56. package/lib/gitnexus/scan.js.map +1 -0
  57. package/lib/gitnexus/search.d.ts +167 -0
  58. package/lib/gitnexus/search.d.ts.map +1 -0
  59. package/lib/gitnexus/search.js +517 -0
  60. package/lib/gitnexus/search.js.map +1 -0
  61. package/lib/gitnexus/toolchain.d.ts +136 -0
  62. package/lib/gitnexus/toolchain.d.ts.map +1 -0
  63. package/lib/gitnexus/toolchain.js +251 -0
  64. package/lib/gitnexus/toolchain.js.map +1 -0
  65. package/lib/index.d.ts +98 -0
  66. package/lib/index.d.ts.map +1 -0
  67. package/lib/index.js +252 -0
  68. package/lib/index.js.map +1 -0
  69. package/lib/routes/analyze.d.ts +41 -0
  70. package/lib/routes/analyze.d.ts.map +1 -0
  71. package/lib/routes/analyze.js +75 -0
  72. package/lib/routes/analyze.js.map +1 -0
  73. package/lib/routes/coverage.d.ts +52 -0
  74. package/lib/routes/coverage.d.ts.map +1 -0
  75. package/lib/routes/coverage.js +81 -0
  76. package/lib/routes/coverage.js.map +1 -0
  77. package/lib/routes/guard.d.ts +92 -0
  78. package/lib/routes/guard.d.ts.map +1 -0
  79. package/lib/routes/guard.js +187 -0
  80. package/lib/routes/guard.js.map +1 -0
  81. package/lib/routes/install.d.ts +27 -0
  82. package/lib/routes/install.d.ts.map +1 -0
  83. package/lib/routes/install.js +46 -0
  84. package/lib/routes/install.js.map +1 -0
  85. package/lib/routes/search.d.ts +27 -0
  86. package/lib/routes/search.d.ts.map +1 -0
  87. package/lib/routes/search.js +77 -0
  88. package/lib/routes/search.js.map +1 -0
  89. package/package.json +87 -4
  90. package/scripts/link-runtime.mjs +146 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/gitnexus/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAyDjD,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAkB;IACtB,MAAM,CAAS;IAExB,YAAY,IAAqB,EAAE,MAAc,EAAE,OAAe;QAChE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAYD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;AAEhD;;;;;;GAMG;AACH,KAAK,UAAU,WAAW,CAAC,OAAsB;IAC/C,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1F,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,WAAW,CACnB,oBAAoB,EACpB,GAAG,EACH,6CAA6C,CAC9C,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CACvB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAC/E,CAGA,CAAC;QACF,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;YACtF,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,OAAO,GAAgB;YAC3B,UAAU,EAAE,GAAG,CAAC,UAAuC;YACvD,eAAe,EAAE,GAAG,CAAC,eAAiD;SACvE,CAAC;QACF,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,WAAW,CACnB,oBAAoB,EACpB,GAAG,EACH,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACjF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,OAAO,GAAG;SACP,SAAS,CAAC,KAAK,CAAC;SAChB,WAAW,EAAE;SACb,OAAO,CAAC,2BAA2B,EAAE,GAAG,CAAC;SACzC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB;IAC3C,MAAM,CAAC,GAAG,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClF,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,KAAa;IAC/C,mEAAmE;IACnE,iFAAiF;IACjF,wBAAwB;IACxB,OAAO;;iCAEwB,KAAK;+DACyB,KAAK;;;oCAGhC,KAAK;8CACK,KAAK;;;;QAI3C,KAAK;CACZ,CAAC;AACF,CAAC;AAED,SAAS,OAAO,CAAC,IAAe;IAC9B,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QAC1D,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,IAAI,IAAI,KAAK,EAAE,IAAI,QAAQ,KAAK,EAAE;YAAE,SAAS;QAC7C,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC5E,IAAI;YACJ,QAAQ;YACR,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;YAChC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,gDAAgD,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,QAAgB,EAChB,UAAyB,EAAE;IAE3B,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,GAAG,EAAE,uBAAuB,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,GAAG,EAAE,+BAA+B,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,WAAW,CAAC,UAAU,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,WAAW,CAAC,gBAAgB,EAAE,GAAG,EAAE,+BAA+B,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEzC,IAAI,IAAe,CAAC;IACpB,IAAI,CAAC;QACH,6EAA6E;QAC7E,8EAA8E;QAC9E,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,UAAU,CAC9B,QAAQ,EACR,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,EAC/C,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAClC,CAAc,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,GAAG,EAAE,6BAA6B,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,GAAG,EAAE,SAAS,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,KAAK,WAAW,CAAC;IAC9D,OAAO;QACL,KAAK;QACL,IAAI,EAAE,OAAO;QACb,YAAY;QACZ,OAAO;QACP,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,SAAS,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAClC,OAAO,EAAE,YAAY;YACnB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,kCAAkC;KACvC,CAAC;AACJ,CAAC;AAaD,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO;QACjC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG;QAClC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/D,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAkC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe,CAAC;QACrB,KAAK,UAAU,CAAC;QAChB,KAAK,gBAAgB,CAAC;QACtB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,YAAY,CAAC;QAClB,KAAK,eAAe;YAClB,OAAO,KAAK,CAAC;QACf;YACE,OAAO,eAAe,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QACxD,MAAM,GAAG,GAAG,IAA+B,CAAC;QAC5C,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ;YAAE,SAAS;QAC/E,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACzD,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;YAChC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,KAAK,EAAE,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACrD,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;QAC5C,YAAY,EAAE,GAAG,CAAC,YAAY,KAAK,IAAI;QACvC,OAAO;QACP,KAAK,EAAE,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;QACjE,SAAS,EAAE,GAAG,CAAC,SAAS,KAAK,IAAI;QACjC,OAAO,EAAE,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;KAC9D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,QAAgB,EAChB,OAA4B;IAE5B,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,GAAG,EAAE,uBAAuB,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,GAAG,EAAE,+BAA+B,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,WAAW,CAAC,UAAU,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,WAAW,CAAC,gBAAgB,EAAE,GAAG,EAAE,+BAA+B,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,WAAW,CACnB,oBAAoB,EACpB,GAAG,EACH,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;SAC1F,GAAG,CAAC,QAAQ,CAAC;SACb,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,MAAM,OAAO,GAAG,QAAQ,IAAI,EAAE,CAAC;IAE/B,IAAI,MAKH,CAAC;IACF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YACjC,OAAO;YACP,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,MAAM;YACjB,QAAQ,EAAE,MAAM;YAChB,cAAc,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;SAChC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,WAAW,CACnB,oBAAoB,EACpB,GAAG,EACH,aAAa,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACtE,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC7B,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,IAAI,WAAW,CACnB,eAAe,EACf,GAAG,EACH,iBACE,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GACxE,EAAE,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CACrC,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;QACvE,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9E,MAAM,IAAI,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAeD,MAAM,sBAAsB,GAAG,KAAK,CAAC;AACrC,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAChD,MAAM,2BAA2B,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAAgB,EAChB,QAAgB,EAChB,UAA6B,EAAE;IAE/B,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7D,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,GAAG,EAAE,+BAA+B,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,WAAW,CAAC,UAAU,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,IAAI,sBAAsB,CAAC,CAAC,CACxE,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,EAAE,GAAG,IAAI,EACT,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,IAAI,sBAAsB,CAAC,CAAC,CACpF,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,CAAC,GAAG,IAAI,EACR,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,2BAA2B,CAAC,CAAC,CAC5F,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,SACd,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;QAC1D,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAC7C,gCAAgC,CAAC;IACjC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO;YACL,KAAK;YACL,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,8BAA8B;SACxC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC;IAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9E,gFAAgF;IAChF,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,oGAAoG,CAAC;IACtH,MAAM,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;QAClD,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;YAC5B,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM;QACR,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjD,8EAA8E;QAC9E,2EAA2E;QAC3E,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,SAAS;QAE3C,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,IAAI,GAAG,YAAY,EAAE,CAAC;YACxB,SAAS,GAAG,IAAI,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,SAAS,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAC;YAChC,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM;QACR,CAAC;QAED,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC;QAC3B,gFAAgF;QAChF,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,SAAS;QAEnD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACrD,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC5B,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM;YACR,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YAClD,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK;gBACxC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;gBACtC,SAAS,EAAE,KAAK,GAAG,CAAC;gBACpB,OAAO,EAAE,KAAK,GAAG,CAAC;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK;QACL,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,KAAK;QACnB,OAAO;QACP,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,SAAS;QACT,OAAO;KACR,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,cAAc,GAAiC,IAAI,GAAG,CAAC;IAC3D,oBAAoB;IACpB,eAAe;IACf,YAAY;IACZ,gBAAgB;CACjB,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,QAAgB,EAChB,OAA4B;IAE5B,IAAI,CAAC;QACH,OAAO,MAAM,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACnE,OAAO,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE;gBACpC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,KAAK,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Whether GitNexus is actually available on this machine.
3
+ *
4
+ * WHY THIS EXISTS
5
+ * ---------------
6
+ * The plugin declares **no runtime dependencies** and never imports `gitnexus` as a
7
+ * module. It reads an index another tool produced and, when it can, deep-imports the
8
+ * upstream scan primitives at runtime. That design keeps the plugin a pure observer —
9
+ * but it means "the operator has no GitNexus" is a first-class reachable state, not
10
+ * an edge case, and nothing was checking for it.
11
+ *
12
+ * The consequence was not a crash. The engine degrades: `loadScanPrimitives` returns
13
+ * `null`, the local walker takes over, and the size caps fall back to their built-in
14
+ * defaults. The damage was in what the operator was **told**: with no index, the panel
15
+ * handed over `gitnexus analyze --index-only …` — a command that fails with
16
+ * `command not found` on a machine that has no GitNexus, presented as the next step.
17
+ *
18
+ * TWO SEPARATE QUESTIONS
19
+ * ----------------------
20
+ * The library tree and the CLI are different things and are reported separately,
21
+ * because they gate different promises:
22
+ *
23
+ * - **package root** — can this plugin reuse GitNexus's own scan rules and language
24
+ * detector, and are the numbers therefore authoritative?
25
+ * - **CLI on PATH** — will the maintenance command the panel hands over actually
26
+ * run when the operator pastes it?
27
+ *
28
+ * A `gitnexus` installed as a dependency but never linked globally satisfies the
29
+ * first and not the second, and collapsing them into one boolean would make the
30
+ * panel either over- or under-promise in that case.
31
+ */
32
+ /** The probe order for a platform. Exported so a test can assert the ordering. */
33
+ export declare function cliShimNames(platform?: NodeJS.Platform): readonly string[];
34
+ /**
35
+ * The POSIX probe order, kept exported under its original name.
36
+ *
37
+ * Callers that need the real answer must use {@link cliShimNames}; this is the list
38
+ * for a platform where the extensionless shim is the correct one.
39
+ */
40
+ export declare const CLI_SHIM_NAMES: readonly string[];
41
+ export interface CliProbeFound {
42
+ present: true;
43
+ /**
44
+ * Absolute path to the thing that runs the CLI.
45
+ *
46
+ * A `.js` script when it came from the declared `gitnexus` dependency — that
47
+ * package's `bin` is `dist/cli/index.js` — and a shim path when it came from PATH.
48
+ * `viaNode` says which, because the two need different command shapes: a script is
49
+ * spawned as `node <path>`, a shim is spawned directly (and on Windows needs the
50
+ * shell's call operator).
51
+ */
52
+ cliPath: string;
53
+ /** Whether `cliPath` has to be run through `node`. */
54
+ viaNode: boolean;
55
+ /** Where this came from, so an unexpected pick can be diagnosed. */
56
+ source: 'override' | 'managed' | 'dependency' | 'path';
57
+ /** The package root it was resolved from, when it came from a dependency. */
58
+ packageRoot: string | null;
59
+ }
60
+ export interface CliProbeMissing {
61
+ present: false;
62
+ /** How many PATH entries were examined — evidence the probe actually ran. */
63
+ probedDirs: number;
64
+ }
65
+ /**
66
+ * How much of GitNexus is available.
67
+ *
68
+ * `library-only` is the case worth naming: analysis is authoritative, but a handed-over
69
+ * command will not run as typed.
70
+ */
71
+ export type ToolchainVerdict =
72
+ /** Both the library tree and a CLI shim are present. Every promise holds. */
73
+ 'ready'
74
+ /** The library tree is present but no CLI shim was found on PATH. */
75
+ | 'library-only'
76
+ /** Neither was found: the plugin falls back to its own scan rules. */
77
+ | 'absent';
78
+ export interface ToolchainStatus {
79
+ /** Where the GitNexus package tree was found, if anywhere. */
80
+ packageRoot: string | null;
81
+ /** Version read from that tree's manifest, for provenance. */
82
+ packageVersion: string | null;
83
+ /** Whether a `gitnexus` executable is reachable through PATH. */
84
+ cli: CliProbeFound | CliProbeMissing;
85
+ verdict: ToolchainVerdict;
86
+ }
87
+ export interface ToolchainOptions {
88
+ env?: NodeJS.ProcessEnv;
89
+ moduleUrl?: string;
90
+ /** Platform whose shim naming applies. Defaults to the running one. */
91
+ platform?: NodeJS.Platform;
92
+ /**
93
+ * Where this plugin installs GitNexus when the operator asks it to.
94
+ *
95
+ * Checked before the dependency and PATH so that a copy the plugin installed is the
96
+ * one it uses: that copy is the only one whose version it chose, and finding a
97
+ * different one later would make the refresh behave differently from the install that
98
+ * preceded it.
99
+ */
100
+ managedPrefix?: string;
101
+ /** Skips discovery entirely, returning an `absent` verdict — for tests. */
102
+ discover?: boolean;
103
+ }
104
+ /**
105
+ * Resolve the `gitnexus` CLI this plugin will run.
106
+ *
107
+ * ORDER: explicit override, then the declared dependency, then PATH.
108
+ *
109
+ * The dependency comes first because the plugin now declares `gitnexus` as one, so it
110
+ * is present by construction and no PATH search is needed — the "is GitNexus installed"
111
+ * question stops being a runtime check and becomes an install-time guarantee. That was
112
+ * the whole point of taking the dependency: a check that always succeeds is not a check.
113
+ *
114
+ * PATH remains as the fallback rather than the primary, because a normal `npm install`
115
+ * of this plugin puts `gitnexus` beside it in `node_modules`, where PATH never looks.
116
+ * Keeping the search means a machine with a global install still works if the
117
+ * dependency somehow did not land, and it keeps this repository's own tests runnable
118
+ * without a 1 GB install.
119
+ *
120
+ * Does not execute anything. Spawning the CLI to ask its version would be the direct
121
+ * test, but a confined DSH process denies piped stdio (`spawn EPERM`), which is the
122
+ * same constraint that shaped the maintenance commands — so a probe that only stats the
123
+ * filesystem is the one that works everywhere this plugin runs.
124
+ */
125
+ export declare function findGitnexusCli(options?: ToolchainOptions): CliProbeFound | CliProbeMissing;
126
+ /** Resolve the full picture: library tree, CLI shim, and the verdict they imply. */
127
+ export declare function readToolchainStatus(options?: ToolchainOptions): ToolchainStatus;
128
+ /**
129
+ * The one-line explanation the panel and the CLI show, or `null` when everything is
130
+ * present and there is nothing to warn about.
131
+ *
132
+ * Kept here rather than in the browser half so the CLI and the panel cannot describe
133
+ * the same machine state two different ways.
134
+ */
135
+ export declare function toolchainNotice(status: ToolchainStatus): string | null;
136
+ //# sourceMappingURL=toolchain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolchain.d.ts","sourceRoot":"","sources":["../../src/gitnexus/toolchain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AA2CH,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,SAAS,MAAM,EAAE,CAE5F;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAAqB,CAAC;AAElE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,IAAI,CAAC;IACd;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,YAAY,GAAG,MAAM,CAAC;IACvD,6EAA6E;IAC7E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;IACf,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB;AAC1B,6EAA6E;AAC3E,OAAO;AACT,qEAAqE;GACnE,cAAc;AAChB,sEAAsE;GACpE,QAAQ,CAAC;AAEb,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,8DAA8D;IAC9D,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iEAAiE;IACjE,GAAG,EAAE,aAAa,GAAG,eAAe,CAAC;IACrC,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAuBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,gBAAqB,GAAG,aAAa,GAAG,eAAe,CAkD/F;AAoDD,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CASnF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAgBtE"}
@@ -0,0 +1,251 @@
1
+ /**
2
+ * Whether GitNexus is actually available on this machine.
3
+ *
4
+ * WHY THIS EXISTS
5
+ * ---------------
6
+ * The plugin declares **no runtime dependencies** and never imports `gitnexus` as a
7
+ * module. It reads an index another tool produced and, when it can, deep-imports the
8
+ * upstream scan primitives at runtime. That design keeps the plugin a pure observer —
9
+ * but it means "the operator has no GitNexus" is a first-class reachable state, not
10
+ * an edge case, and nothing was checking for it.
11
+ *
12
+ * The consequence was not a crash. The engine degrades: `loadScanPrimitives` returns
13
+ * `null`, the local walker takes over, and the size caps fall back to their built-in
14
+ * defaults. The damage was in what the operator was **told**: with no index, the panel
15
+ * handed over `gitnexus analyze --index-only …` — a command that fails with
16
+ * `command not found` on a machine that has no GitNexus, presented as the next step.
17
+ *
18
+ * TWO SEPARATE QUESTIONS
19
+ * ----------------------
20
+ * The library tree and the CLI are different things and are reported separately,
21
+ * because they gate different promises:
22
+ *
23
+ * - **package root** — can this plugin reuse GitNexus's own scan rules and language
24
+ * detector, and are the numbers therefore authoritative?
25
+ * - **CLI on PATH** — will the maintenance command the panel hands over actually
26
+ * run when the operator pastes it?
27
+ *
28
+ * A `gitnexus` installed as a dependency but never linked globally satisfies the
29
+ * first and not the second, and collapsing them into one boolean would make the
30
+ * panel either over- or under-promise in that case.
31
+ */
32
+ import { existsSync } from 'node:fs';
33
+ import { fileURLToPath } from 'node:url';
34
+ import path from 'node:path';
35
+ import { findGitnexusRoot, readGitnexusVersion } from './root.js';
36
+ /**
37
+ * Filenames a `gitnexus` CLI shim can have, in probe order **per platform**.
38
+ *
39
+ * Written out rather than derived from `PATHEXT`, for the reason `root.ts` already
40
+ * documents: under nvm-for-windows the shim is `gitnexus.ps1`, and `PATHEXT` does not
41
+ * list `.ps1`, so extension-driven discovery silently finds nothing on exactly the
42
+ * machines where the CLI is installed.
43
+ *
44
+ * ORDER IS PLATFORM-SPECIFIC, AND THAT IS THE WHOLE POINT
45
+ * ------------------------------------------------------
46
+ * npm writes three shims side by side: `gitnexus` (a `#!/bin/sh` script), `gitnexus.cmd`
47
+ * and `gitnexus.ps1`. The extensionless one is the POSIX entry point; on Windows it is
48
+ * inert. Measured on the reference machine:
49
+ *
50
+ * gitnexus -> no output, no exit status
51
+ * gitnexus.ps1 -> 1.6.12, exit 0
52
+ * gitnexus.cmd -> 1.6.12, exit 0
53
+ *
54
+ * A single order listing the extensionless name first — which is the natural way to
55
+ * write it — therefore selects a shim that cannot run on Windows, and the `.ps1`
56
+ * fix above it never gets a chance to help. The runner would build a command around
57
+ * that path and report a failure that has nothing to do with the repository.
58
+ *
59
+ * `.cmd` leads on Windows because it is the one a batch *or* a PowerShell host can
60
+ * spawn; `.ps1` follows for installs that ship only that.
61
+ */
62
+ const WINDOWS_SHIM_NAMES = [
63
+ 'gitnexus.cmd',
64
+ 'gitnexus.exe',
65
+ 'gitnexus.bat',
66
+ 'gitnexus.ps1',
67
+ 'gitnexus',
68
+ ];
69
+ const POSIX_SHIM_NAMES = ['gitnexus'];
70
+ /** The probe order for a platform. Exported so a test can assert the ordering. */
71
+ export function cliShimNames(platform = process.platform) {
72
+ return platform === 'win32' ? WINDOWS_SHIM_NAMES : POSIX_SHIM_NAMES;
73
+ }
74
+ /**
75
+ * The POSIX probe order, kept exported under its original name.
76
+ *
77
+ * Callers that need the real answer must use {@link cliShimNames}; this is the list
78
+ * for a platform where the extensionless shim is the correct one.
79
+ */
80
+ export const CLI_SHIM_NAMES = POSIX_SHIM_NAMES;
81
+ /**
82
+ * The effective `PATH`, whatever the platform spells it.
83
+ *
84
+ * `process.env` is a case-insensitive proxy — `process.env.PATH` resolves on Windows
85
+ * even though the variable is stored as `Path`. **Spreading it into a plain object
86
+ * drops that**, so `{ ...process.env }.PATH` is `undefined` on the default Windows
87
+ * layout and the probe walks zero directories while reporting a plausible-looking
88
+ * miss. That is how this was found: the runner reported "no gitnexus" on a machine
89
+ * where `gitnexus` runs, with `probedDirs: 0` as the only clue.
90
+ *
91
+ * Caller-supplied values still win, checked in the same three spellings so an
92
+ * override cannot be lost the same way.
93
+ */
94
+ function effectivePath(override) {
95
+ const pick = (source) => {
96
+ if (source === undefined)
97
+ return undefined;
98
+ return source.PATH ?? source.Path ?? source.path;
99
+ };
100
+ return pick(override) ?? pick(process.env) ?? '';
101
+ }
102
+ /**
103
+ * Resolve the `gitnexus` CLI this plugin will run.
104
+ *
105
+ * ORDER: explicit override, then the declared dependency, then PATH.
106
+ *
107
+ * The dependency comes first because the plugin now declares `gitnexus` as one, so it
108
+ * is present by construction and no PATH search is needed — the "is GitNexus installed"
109
+ * question stops being a runtime check and becomes an install-time guarantee. That was
110
+ * the whole point of taking the dependency: a check that always succeeds is not a check.
111
+ *
112
+ * PATH remains as the fallback rather than the primary, because a normal `npm install`
113
+ * of this plugin puts `gitnexus` beside it in `node_modules`, where PATH never looks.
114
+ * Keeping the search means a machine with a global install still works if the
115
+ * dependency somehow did not land, and it keeps this repository's own tests runnable
116
+ * without a 1 GB install.
117
+ *
118
+ * Does not execute anything. Spawning the CLI to ask its version would be the direct
119
+ * test, but a confined DSH process denies piped stdio (`spawn EPERM`), which is the
120
+ * same constraint that shaped the maintenance commands — so a probe that only stats the
121
+ * filesystem is the one that works everywhere this plugin runs.
122
+ */
123
+ export function findGitnexusCli(options = {}) {
124
+ if (options.discover === false)
125
+ return { present: false, probedDirs: 0 };
126
+ const platform = options.platform ?? process.platform;
127
+ // An explicit override wins, so a machine with a non-standard layout — or a test —
128
+ // can name the executable directly.
129
+ const explicit = options.env?.GITNEXUS_CLI ?? process.env.GITNEXUS_CLI;
130
+ if (typeof explicit === 'string' && explicit !== '' && existsSync(explicit)) {
131
+ return {
132
+ present: true,
133
+ cliPath: explicit,
134
+ viaNode: explicit.endsWith('.js'),
135
+ source: 'override',
136
+ packageRoot: null,
137
+ };
138
+ }
139
+ // The copy this plugin installed, when there is one. Ahead of the dependency and PATH
140
+ // because it is the only copy whose version this plugin chose: finding a different one
141
+ // afterwards would make the refresh behave differently from the install before it.
142
+ const managed = options.managedPrefix;
143
+ if (typeof managed === 'string' && managed !== '') {
144
+ const script = path.join(managed, 'node_modules', 'gitnexus', 'dist', 'cli', 'index.js');
145
+ try {
146
+ if (existsSync(script)) {
147
+ return { present: true, cliPath: script, viaNode: true, source: 'managed', packageRoot: path.join(managed, 'node_modules', 'gitnexus') };
148
+ }
149
+ }
150
+ catch {
151
+ /* unreadable managed tree — fall through to the other sources */
152
+ }
153
+ }
154
+ const fromDependency = resolveDependencyCli(options);
155
+ if (fromDependency !== null)
156
+ return fromDependency;
157
+ const entries = effectivePath(options.env).split(path.delimiter).filter((dir) => dir !== '');
158
+ for (const dir of entries) {
159
+ for (const name of cliShimNames(platform)) {
160
+ const candidate = path.join(dir, name);
161
+ try {
162
+ if (existsSync(candidate)) {
163
+ return { present: true, cliPath: candidate, viaNode: false, source: 'path', packageRoot: null };
164
+ }
165
+ }
166
+ catch {
167
+ /* unreadable PATH entry — keep looking */
168
+ }
169
+ }
170
+ }
171
+ return { present: false, probedDirs: entries.length };
172
+ }
173
+ /**
174
+ * The CLI shipped inside the `gitnexus` dependency, if it is installed.
175
+ *
176
+ * Resolved by walking up from this module rather than by asking Node to resolve the
177
+ * package name, because these modules are CommonJS-compiled and a bare `require` of an
178
+ * ESM-only package would throw for a reason unrelated to whether the file exists. Each
179
+ * candidate is a plain `node_modules/gitnexus` directory on the way to the filesystem
180
+ * root, which is exactly where npm and pnpm put it.
181
+ */
182
+ function resolveDependencyCli(options) {
183
+ const startDir = options.moduleUrl === undefined ? undefined : safeDirname(options.moduleUrl);
184
+ let dir = startDir ?? undefined;
185
+ // `import.meta.url` is only available in the host half, so the caller may not pass
186
+ // one; without a starting point there is nothing to walk and PATH is the answer.
187
+ if (dir === undefined)
188
+ return null;
189
+ for (let depth = 0; depth < 24; depth += 1) {
190
+ const candidateRoot = path.join(dir, 'node_modules', 'gitnexus');
191
+ const manifest = path.join(candidateRoot, 'package.json');
192
+ const script = path.join(candidateRoot, 'dist', 'cli', 'index.js');
193
+ try {
194
+ if (existsSync(manifest) && existsSync(script)) {
195
+ return {
196
+ present: true,
197
+ cliPath: script,
198
+ viaNode: true,
199
+ source: 'dependency',
200
+ packageRoot: candidateRoot,
201
+ };
202
+ }
203
+ }
204
+ catch {
205
+ /* unreadable directory — keep walking up */
206
+ }
207
+ const parent = path.dirname(dir);
208
+ if (parent === dir)
209
+ break;
210
+ dir = parent;
211
+ }
212
+ return null;
213
+ }
214
+ /** Directory of one module url, or `undefined` when it cannot be read as a path. */
215
+ function safeDirname(moduleUrl) {
216
+ try {
217
+ return path.dirname(fileURLToPath(moduleUrl));
218
+ }
219
+ catch {
220
+ return undefined;
221
+ }
222
+ }
223
+ /** Resolve the full picture: library tree, CLI shim, and the verdict they imply. */
224
+ export function readToolchainStatus(options = {}) {
225
+ const packageRoot = findGitnexusRoot(options);
226
+ const packageVersion = packageRoot === null ? null : readGitnexusVersion(packageRoot);
227
+ const cli = findGitnexusCli(options);
228
+ const verdict = packageRoot !== null && cli.present ? 'ready' : packageRoot !== null ? 'library-only' : 'absent';
229
+ return { packageRoot, packageVersion, cli, verdict };
230
+ }
231
+ /**
232
+ * The one-line explanation the panel and the CLI show, or `null` when everything is
233
+ * present and there is nothing to warn about.
234
+ *
235
+ * Kept here rather than in the browser half so the CLI and the panel cannot describe
236
+ * the same machine state two different ways.
237
+ */
238
+ export function toolchainNotice(status) {
239
+ switch (status.verdict) {
240
+ case 'ready':
241
+ return null;
242
+ case 'library-only':
243
+ return ('本机有 GitNexus 库但没有 gitnexus 命令(可能只作为依赖安装、未全局链接)。' +
244
+ '下面的命令需要先 `npm i -g gitnexus` 才能直接执行。');
245
+ case 'absent':
246
+ return ('本机没有 GitNexus。扫描规则来自本插件内置的回退实现,' +
247
+ '与 GitNexus 自身的忽略规则不完全一致,覆盖差异数字仅供参考。' +
248
+ '初始化索引需要先安装:`npm i -g gitnexus`。');
249
+ }
250
+ }
251
+ //# sourceMappingURL=toolchain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolchain.js","sourceRoot":"","sources":["../../src/gitnexus/toolchain.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,98 @@
1
+ /**
2
+ * dsh-gitnexus-plus —host half.
3
+ *
4
+ * Registers one read-only tool and one loopback HTTP route over the coverage
5
+ * engine in `./gitnexus/`. Both answer the same question —"what did this index
6
+ * leave out?" —for the two callers that need it: the model, and a browser half
7
+ * that will render it.
8
+ *
9
+ * The read path is still never allowed to change anything: a status check must not
10
+ * start a 30-second rebuild. The two mutating capabilities are separate routes with
11
+ * their own guards, and both go through the host's shell executor rather than
12
+ * spawning from the read path. Keyword search is a third read-only route over the
13
+ * graph itself; the tool above stays read-only.
14
+ */
15
+ import type { Context } from '@deepseek-ai/cordis';
16
+ import { type MaintenanceCommand } from './gitnexus/commands.js';
17
+ export declare const name = "gitnexus-plus";
18
+ /**
19
+ * Only `tools` is required. `webServer` is reached through `ctx.inject` because a
20
+ * headless profile has no HTTP carrier at all —naming it here would leave the
21
+ * plugin permanently pending there, and the tool would never register.
22
+ */
23
+ export declare const inject: readonly ["tools"];
24
+ /** The shape `Schema.object` infers below, named for use in signatures. */
25
+ export interface PluginConfig {
26
+ scanDefaultCapKb: number;
27
+ minifiedSampleLimit: number;
28
+ serveRoutes: boolean;
29
+ /**
30
+ * Shapes the maintenance commands the panel hands to the operator. `memoryOff`
31
+ * defaults on because the CLI otherwise re-spawns itself over piped stdio, which
32
+ * a confined process denies.
33
+ *
34
+ * `skipFts: false` (default) means **automatic**: the plugin skips FTS when the
35
+ * index does not have it, and omits the flag when it does. Both static values were
36
+ * measured wrong on a real machine: `true` forces a 21x full rebuild on an FTS
37
+ * index, while an unconditional `false` makes a refresh on a non-FTS index die
38
+ * with `spawn EPERM` when the extension tries to install out-of-process. `true`
39
+ * here forces the flag for an operator who needs it.
40
+ */
41
+ skipFts: boolean;
42
+ memoryOff: boolean;
43
+ analyzeHeapMb: number;
44
+ /**
45
+ * Wall-clock ceiling for a run this plugin starts.
46
+ *
47
+ * Ten minutes, because the escape hatch this panel offers is a full rebuild and
48
+ * those are measured in minutes on a large repository. Too short a ceiling turns
49
+ * the feature into "it always times out on the repos that need it most"; the run
50
+ * is cancellable, so the cost of it being generous is bounded by the operator.
51
+ */
52
+ analyzeTimeoutMs: number;
53
+ /**
54
+ * Where the plugin installs GitNexus when asked. Empty means the default,
55
+ * `$DSH_HOME/gitnexus-plus/gitnexus`.
56
+ */
57
+ gitnexusInstallDir: string;
58
+ /** Wall-clock ceiling for that install. Compiling native modules is slow. */
59
+ installTimeoutMs: number;
60
+ /**
61
+ * Redirect for GitNexus's global registry write. Empty means
62
+ * `<project>/.gitnexus/plugin-home`, inside the workspace. The global
63
+ * `~/.gitnexus` is outside a confined host's writable scope, and a refresh that
64
+ * dies on the registry write leaves the index incomplete.
65
+ */
66
+ gitnexusHome: string;
67
+ }
68
+ export declare const Config: import("@deepseek-ai/schemastery").SchemaLike<{
69
+ scanDefaultCapKb: number;
70
+ minifiedSampleLimit: number;
71
+ serveRoutes: boolean;
72
+ skipFts: boolean;
73
+ memoryOff: boolean;
74
+ analyzeHeapMb: number;
75
+ analyzeTimeoutMs: number;
76
+ gitnexusInstallDir: string;
77
+ installTimeoutMs: number;
78
+ gitnexusHome: string;
79
+ }>;
80
+ /** The maintenance payload the panel renders alongside a report. */
81
+ export interface MaintenanceInfo {
82
+ commands: MaintenanceCommand[];
83
+ rationale: string[];
84
+ /**
85
+ * Whether the mounted analyze route understands `force=1`. The client uses it to
86
+ * avoid offering a full-rebuild button against an older host, where that flag was
87
+ * ignored and the button would silently run an incremental refresh instead.
88
+ */
89
+ supportsForce: true;
90
+ }
91
+ export declare function apply(ctx: Context, config: PluginConfig): void;
92
+ /**
93
+ * Human-readable rendering lives in `./gitnexus/format.js` —free of DSH imports
94
+ * so it can be tested without a host. Re-exported here for callers that already
95
+ * hold the plugin module.
96
+ */
97
+ export { formatReport } from './gitnexus/format.js';
98
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAKnD,OAAO,EAKL,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAuBhC,eAAO,MAAM,IAAI,kBAAkB,CAAC;AAEpC;;;;GAIG;AACH,eAAO,MAAM,MAAM,oBAAqB,CAAC;AAEzC,2EAA2E;AAC3E,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;;OAWG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;EAWjB,CAAC;AAqBH,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;;;;OAIG;IACH,aAAa,EAAE,IAAI,CAAC;CACrB;AAiBD,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CA+L9D;AAED;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}