kiri-mcp-server 0.9.6 → 0.9.9

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 (154) hide show
  1. package/README.md +94 -7
  2. package/dist/client/cli.js +68 -0
  3. package/dist/client/cli.js.map +1 -0
  4. package/dist/client/index.js +5 -0
  5. package/dist/client/index.js.map +1 -0
  6. package/dist/eval/metrics.js +47 -0
  7. package/dist/eval/metrics.js.map +1 -0
  8. package/dist/indexer/cli.js +362 -0
  9. package/dist/indexer/cli.js.map +1 -0
  10. package/dist/indexer/codeintel.js +182 -0
  11. package/dist/indexer/codeintel.js.map +1 -0
  12. package/dist/indexer/git.js +30 -0
  13. package/dist/indexer/git.js.map +1 -0
  14. package/dist/indexer/language.js +34 -0
  15. package/dist/indexer/language.js.map +1 -0
  16. package/dist/indexer/pipeline/filters/denylist.js +71 -0
  17. package/dist/indexer/pipeline/filters/denylist.js.map +1 -0
  18. package/dist/indexer/schema.js +101 -0
  19. package/dist/indexer/schema.js.map +1 -0
  20. package/dist/package.json +11 -1
  21. package/dist/server/bootstrap.js +19 -0
  22. package/dist/server/bootstrap.js.map +1 -0
  23. package/dist/server/context.js +1 -0
  24. package/dist/server/context.js.map +1 -0
  25. package/dist/server/fallbacks/degradeController.js +69 -0
  26. package/dist/server/fallbacks/degradeController.js.map +1 -0
  27. package/dist/server/handlers.js +1268 -0
  28. package/dist/server/handlers.js.map +1 -0
  29. package/dist/server/main.js +151 -0
  30. package/dist/server/main.js.map +1 -0
  31. package/dist/server/observability/metrics.js +56 -0
  32. package/dist/server/observability/metrics.js.map +1 -0
  33. package/dist/server/observability/tracing.js +58 -0
  34. package/dist/server/observability/tracing.js.map +1 -0
  35. package/dist/server/rpc.js +477 -0
  36. package/dist/server/rpc.js.map +1 -0
  37. package/dist/server/runtime.js +47 -0
  38. package/dist/server/runtime.js.map +1 -0
  39. package/dist/server/scoring.js +116 -0
  40. package/dist/server/scoring.js.map +1 -0
  41. package/dist/server/stdio.js +76 -0
  42. package/dist/server/stdio.js.map +1 -0
  43. package/dist/shared/duckdb.js +119 -0
  44. package/dist/shared/duckdb.js.map +1 -0
  45. package/dist/shared/embedding.js +98 -0
  46. package/dist/shared/embedding.js.map +1 -0
  47. package/dist/shared/index.js +9 -0
  48. package/dist/shared/index.js.map +1 -0
  49. package/dist/shared/security/config.js +64 -0
  50. package/dist/shared/security/config.js.map +1 -0
  51. package/dist/shared/security/masker.js +56 -0
  52. package/dist/shared/security/masker.js.map +1 -0
  53. package/dist/shared/tokenizer.js +4 -0
  54. package/dist/shared/tokenizer.js.map +1 -0
  55. package/dist/shared/utils/simpleYaml.js +89 -0
  56. package/dist/shared/utils/simpleYaml.js.map +1 -0
  57. package/dist/src/client/proxy.js +2 -1
  58. package/dist/src/client/proxy.js.map +1 -1
  59. package/dist/src/client/start-daemon.d.ts.map +1 -1
  60. package/dist/src/client/start-daemon.js +2 -1
  61. package/dist/src/client/start-daemon.js.map +1 -1
  62. package/dist/src/daemon/daemon.js +6 -4
  63. package/dist/src/daemon/daemon.js.map +1 -1
  64. package/dist/src/daemon/socket.d.ts +6 -4
  65. package/dist/src/daemon/socket.d.ts.map +1 -1
  66. package/dist/src/daemon/socket.js +62 -18
  67. package/dist/src/daemon/socket.js.map +1 -1
  68. package/dist/src/indexer/cli.d.ts +1 -0
  69. package/dist/src/indexer/cli.d.ts.map +1 -1
  70. package/dist/src/indexer/cli.js +503 -257
  71. package/dist/src/indexer/cli.js.map +1 -1
  72. package/dist/src/indexer/codeintel.d.ts +1 -1
  73. package/dist/src/indexer/codeintel.d.ts.map +1 -1
  74. package/dist/src/indexer/codeintel.js +296 -3
  75. package/dist/src/indexer/codeintel.js.map +1 -1
  76. package/dist/src/indexer/dart/analyze.d.ts +29 -0
  77. package/dist/src/indexer/dart/analyze.d.ts.map +1 -0
  78. package/dist/src/indexer/dart/analyze.js +452 -0
  79. package/dist/src/indexer/dart/analyze.js.map +1 -0
  80. package/dist/src/indexer/dart/client.d.ts +113 -0
  81. package/dist/src/indexer/dart/client.d.ts.map +1 -0
  82. package/dist/src/indexer/dart/client.js +444 -0
  83. package/dist/src/indexer/dart/client.js.map +1 -0
  84. package/dist/src/indexer/dart/config.d.ts +36 -0
  85. package/dist/src/indexer/dart/config.d.ts.map +1 -0
  86. package/dist/src/indexer/dart/config.js +62 -0
  87. package/dist/src/indexer/dart/config.js.map +1 -0
  88. package/dist/src/indexer/dart/dependencies.d.ts +17 -0
  89. package/dist/src/indexer/dart/dependencies.d.ts.map +1 -0
  90. package/dist/src/indexer/dart/dependencies.js +102 -0
  91. package/dist/src/indexer/dart/dependencies.js.map +1 -0
  92. package/dist/src/indexer/dart/pathKey.d.ts +40 -0
  93. package/dist/src/indexer/dart/pathKey.d.ts.map +1 -0
  94. package/dist/src/indexer/dart/pathKey.js +72 -0
  95. package/dist/src/indexer/dart/pathKey.js.map +1 -0
  96. package/dist/src/indexer/dart/poolGate.d.ts +57 -0
  97. package/dist/src/indexer/dart/poolGate.d.ts.map +1 -0
  98. package/dist/src/indexer/dart/poolGate.js +87 -0
  99. package/dist/src/indexer/dart/poolGate.js.map +1 -0
  100. package/dist/src/indexer/dart/sdk.d.ts +40 -0
  101. package/dist/src/indexer/dart/sdk.d.ts.map +1 -0
  102. package/dist/src/indexer/dart/sdk.js +167 -0
  103. package/dist/src/indexer/dart/sdk.js.map +1 -0
  104. package/dist/src/indexer/dart/transform.d.ts +17 -0
  105. package/dist/src/indexer/dart/transform.d.ts.map +1 -0
  106. package/dist/src/indexer/dart/transform.js +157 -0
  107. package/dist/src/indexer/dart/transform.js.map +1 -0
  108. package/dist/src/indexer/dart/types.d.ts +137 -0
  109. package/dist/src/indexer/dart/types.d.ts.map +1 -0
  110. package/dist/src/indexer/dart/types.js +5 -0
  111. package/dist/src/indexer/dart/types.js.map +1 -0
  112. package/dist/src/indexer/git.d.ts +1 -0
  113. package/dist/src/indexer/git.d.ts.map +1 -1
  114. package/dist/src/indexer/git.js +8 -0
  115. package/dist/src/indexer/git.js.map +1 -1
  116. package/dist/src/indexer/language.d.ts.map +1 -1
  117. package/dist/src/indexer/language.js +1 -0
  118. package/dist/src/indexer/language.js.map +1 -1
  119. package/dist/src/indexer/queue.d.ts +19 -0
  120. package/dist/src/indexer/queue.d.ts.map +1 -0
  121. package/dist/src/indexer/queue.js +50 -0
  122. package/dist/src/indexer/queue.js.map +1 -0
  123. package/dist/src/indexer/schema.d.ts +61 -1
  124. package/dist/src/indexer/schema.d.ts.map +1 -1
  125. package/dist/src/indexer/schema.js +253 -2
  126. package/dist/src/indexer/schema.js.map +1 -1
  127. package/dist/src/indexer/watch.d.ts +21 -0
  128. package/dist/src/indexer/watch.d.ts.map +1 -1
  129. package/dist/src/indexer/watch.js +189 -28
  130. package/dist/src/indexer/watch.js.map +1 -1
  131. package/dist/src/server/context.d.ts +7 -0
  132. package/dist/src/server/context.d.ts.map +1 -1
  133. package/dist/src/server/handlers.d.ts.map +1 -1
  134. package/dist/src/server/handlers.js +87 -4
  135. package/dist/src/server/handlers.js.map +1 -1
  136. package/dist/src/server/indexBootstrap.d.ts.map +1 -1
  137. package/dist/src/server/indexBootstrap.js +4 -1
  138. package/dist/src/server/indexBootstrap.js.map +1 -1
  139. package/dist/src/server/main.js +0 -0
  140. package/dist/src/server/runtime.d.ts.map +1 -1
  141. package/dist/src/server/runtime.js +45 -6
  142. package/dist/src/server/runtime.js.map +1 -1
  143. package/dist/src/shared/duckdb.d.ts.map +1 -1
  144. package/dist/src/shared/duckdb.js +9 -0
  145. package/dist/src/shared/duckdb.js.map +1 -1
  146. package/dist/src/shared/utils/path.d.ts +46 -0
  147. package/dist/src/shared/utils/path.d.ts.map +1 -0
  148. package/dist/src/shared/utils/path.js +94 -0
  149. package/dist/src/shared/utils/path.js.map +1 -0
  150. package/dist/src/shared/utils/socket.d.ts +61 -0
  151. package/dist/src/shared/utils/socket.d.ts.map +1 -0
  152. package/dist/src/shared/utils/socket.js +156 -0
  153. package/dist/src/shared/utils/socket.js.map +1 -0
  154. package/package.json +11 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/indexer/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAyD/C,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,0CAA0C;AACnF,MAAM,eAAe,GAAG,GAAG,CAAC,CAAC,iDAAiD;AAE9E,SAAS,UAAU,CAAC,OAAe;IACjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AACvC,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC7E,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,UAAU,CACvB,EAAgB,EAChB,QAAgB,EAChB,aAA4B;IAE5B,2EAA2E;IAC3E,4EAA4E;IAC5E,MAAM,EAAE,CAAC,GAAG,CACV;;;+EAG2E,EAC3E,CAAC,QAAQ,EAAE,aAAa,CAAC,CAC1B,CAAC;IAEF,qDAAqD;IACrD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,GAAG,CAAiB,oCAAoC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE5F,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,GAAG,CAAC,EAAE,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,EAAgB,EAAE,KAA8B;IAC1E,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IAE7B,yCAAyC;IACzC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,8EAA8E,YAAY,EAAE,CAAC;IAEzG,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,EAAgB,EAChB,MAAc,EACd,UAAkB,EAClB,OAAqB;IAErB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjC,yCAAyC;IACzC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,MAAM,GAAG,GAAG,2GAA2G,YAAY,EAAE,CAAC;IAEtI,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CACT,MAAM,EACN,UAAU,EACV,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,QAAQ,CAChB,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,EAAgB,EAChB,MAAc,EACd,OAAqB;IAErB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjC,yCAAyC;IACzC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3E,MAAM,GAAG,GAAG,8FAA8F,YAAY,EAAE,CAAC;IAEzH,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CACT,MAAM,EACN,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,QAAQ,CAChB,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,EAAgB,EAChB,MAAc,EACd,OAAoB;IAEpB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,6BAA6B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjF,MAAM,GAAG,GAAG;;;eAGC,YAAY;GACxB,CAAC;IAEF,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CACT,MAAM,EACN,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,GAAG,CACX,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,EAAgB,EAChB,MAAc,EACd,OAAqB;IAErB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG;;;eAGC,YAAY;GACxB,CAAC;IAEF,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CACT,MAAM,EACN,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,QAAQ,CAChB,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,EAAgB,EAChB,MAAc,EACd,OAAwB;IAExB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG;;;eAGC,YAAY;GACxB,CAAC;IAEF,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,EAAgB,EAChB,MAAc,EACd,OAAuB;IAEvB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,iCAAiC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrF,MAAM,GAAG,GAAG;;;eAGC,YAAY;GACxB,CAAC;IAEF,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,cAAc,CACrB,KAAmB,EACnB,KAA8B;IAE9B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChE,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACnC,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE5E,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,GAAG,EAAE,MAAM,CAAC,GAAG;aAChB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBAC3C,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,SAAS,EAAE,KAAK,GAAG,CAAC;oBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC3B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtD,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,KAAK,UAAU,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,EAAE,CAAC;YACxF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE;oBACpB,OAAO,EAAE,IAAI,CAAC,IAAI;oBAClB,OAAO,EAAE,UAAU,CAAC,OAAO;oBAC3B,GAAG,EAAE,UAAU,CAAC,GAAG;oBACnB,GAAG,EAAE,UAAU,CAAC,GAAG;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;AAChF,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAC/B,QAAgB,EAChB,KAAe;IAEf,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC/C,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAClC,MAAM,aAAa,GAAmB,EAAE,CAAC;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC;QAClD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEtE,6BAA6B;QAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACxB,aAAa,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QAElC,wBAAwB;QACxB,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AACzE,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,QAAgB,EAChB,KAAe;IAEf,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC5C,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAmB,EAAE,CAAC;IAEtC,KAAK,MAAM,YAAY,IAAI,KAAK,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YAED,8DAA8D;YAC9D,IAAI,QAAQ,CAAC,IAAI,GAAG,cAAc,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CACV,QAAQ,YAAY,wBAAwB,QAAQ,CAAC,IAAI,0DAA0D,CACpH,CAAC;gBACF,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;YAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAE9C,IAAI,OAAO,GAAkB,IAAI,CAAC;YAClC,IAAI,SAAS,GAAkB,IAAI,CAAC;YACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAClC,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;oBACd,IAAI;oBACJ,SAAS,EAAE,MAAM,CAAC,MAAM;oBACxB,SAAS;oBACT,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;YAED,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,IAAI;gBACd,GAAG;gBACH,IAAI;gBACJ,QAAQ;gBACR,QAAQ;aACT,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAC7C,IAAI,SAAS,EAAE,CAAC;oBACd,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CACV,eAAe,YAAY,oEAAoE,CAChG,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAuB;IACtD,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEnD,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3D,UAAU,CAAC,QAAQ,CAAC;QACpB,aAAa,CAAC,QAAQ,CAAC;QACvB,gBAAgB,CAAC,QAAQ,CAAC;KAC3B,CAAC,CAAC;IAEH,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAE/C,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/E,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC7D,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,EAAE,CAAC,GAAG,CAAC,oCAAoC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7D,MAAM,EAAE,CAAC,GAAG,CAAC,oCAAoC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7D,MAAM,EAAE,CAAC,GAAG,CAAC,sCAAsC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/D,MAAM,EAAE,CAAC,GAAG,CAAC,uCAAuC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAChE,MAAM,EAAE,CAAC,GAAG,CAAC,0CAA0C,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YACnE,MAAM,EAAE,CAAC,GAAG,CAAC,8CAA8C,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YACvE,MAAM,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC9B,MAAM,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;YAC9D,MAAM,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAEhD,0DAA0D;YAC1D,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,EAAE,CAAC,GAAG,CACV,iFAAiF,EACjF,CAAC,aAAa,EAAE,MAAM,CAAC,CACxB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC,GAAG,CAAC,6DAA6D,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YACxF,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,IAAI,CACV,WAAW,KAAK,CAAC,MAAM,mBAAmB,QAAQ,OAAO,YAAY,YAAY,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAC5G,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAElC,MAAM,OAAO,GAAmB,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;IACjF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAClC,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACrF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,182 @@
1
+ import path from "node:path";
2
+ import ts from "typescript";
3
+ const SUPPORTED_LANGUAGES = new Set(["TypeScript"]);
4
+ function sanitizeSignature(source, node) {
5
+ const start = node.getStart(source);
6
+ const endCandidate = node.forEachChild((child) => {
7
+ if (ts.isBlock(child) || ts.isModuleBlock(child)) {
8
+ return child.getFullStart();
9
+ }
10
+ return undefined;
11
+ });
12
+ const end = typeof endCandidate === "number" ? endCandidate : node.getEnd();
13
+ const snippet = source.text.slice(start, Math.min(end, start + 200));
14
+ return snippet.split(/\r?\n/)[0]?.trim().replace(/\s+/g, " ") ?? "";
15
+ }
16
+ function getDocComment(node) {
17
+ const tags = ts.getJSDocCommentsAndTags(node);
18
+ const parts = [];
19
+ for (const tag of tags) {
20
+ if (ts.isJSDoc(tag)) {
21
+ if (typeof tag.comment === "string") {
22
+ parts.push(tag.comment);
23
+ }
24
+ else if (Array.isArray(tag.comment)) {
25
+ parts.push(tag.comment.map((part) => (typeof part === "string" ? part : part.text)).join(""));
26
+ }
27
+ }
28
+ }
29
+ if (parts.length === 0) {
30
+ return null;
31
+ }
32
+ return parts.join("\n").trim() || null;
33
+ }
34
+ function toLineNumber(source, position) {
35
+ return source.getLineAndCharacterOfPosition(position).line + 1;
36
+ }
37
+ function createSymbolRecords(source) {
38
+ const results = [];
39
+ const visit = (node) => {
40
+ if (ts.isFunctionDeclaration(node) && node.name) {
41
+ results.push({
42
+ name: node.name.getText(source),
43
+ kind: "function",
44
+ rangeStartLine: toLineNumber(source, node.getStart(source)),
45
+ rangeEndLine: toLineNumber(source, node.getEnd()),
46
+ signature: sanitizeSignature(source, node),
47
+ doc: getDocComment(node),
48
+ });
49
+ }
50
+ else if (ts.isClassDeclaration(node) && node.name) {
51
+ results.push({
52
+ name: node.name.getText(source),
53
+ kind: "class",
54
+ rangeStartLine: toLineNumber(source, node.getStart(source)),
55
+ rangeEndLine: toLineNumber(source, node.getEnd()),
56
+ signature: sanitizeSignature(source, node),
57
+ doc: getDocComment(node),
58
+ });
59
+ }
60
+ else if (ts.isInterfaceDeclaration(node) && node.name) {
61
+ results.push({
62
+ name: node.name.getText(source),
63
+ kind: "interface",
64
+ rangeStartLine: toLineNumber(source, node.getStart(source)),
65
+ rangeEndLine: toLineNumber(source, node.getEnd()),
66
+ signature: sanitizeSignature(source, node),
67
+ doc: getDocComment(node),
68
+ });
69
+ }
70
+ else if (ts.isEnumDeclaration(node) && node.name) {
71
+ results.push({
72
+ name: node.name.getText(source),
73
+ kind: "enum",
74
+ rangeStartLine: toLineNumber(source, node.getStart(source)),
75
+ rangeEndLine: toLineNumber(source, node.getEnd()),
76
+ signature: sanitizeSignature(source, node),
77
+ doc: getDocComment(node),
78
+ });
79
+ }
80
+ else if (ts.isMethodDeclaration(node) && node.name) {
81
+ const name = node.name.getText(source);
82
+ results.push({
83
+ name,
84
+ kind: "method",
85
+ rangeStartLine: toLineNumber(source, node.getStart(source)),
86
+ rangeEndLine: toLineNumber(source, node.getEnd()),
87
+ signature: sanitizeSignature(source, node),
88
+ doc: getDocComment(node),
89
+ });
90
+ }
91
+ ts.forEachChild(node, visit);
92
+ };
93
+ ts.forEachChild(source, visit);
94
+ return results
95
+ .sort((a, b) => a.rangeStartLine - b.rangeStartLine)
96
+ .map((item, index) => ({ symbolId: index + 1, ...item }));
97
+ }
98
+ function normalizePathSpecifier(sourcePath, specifier, fileSet) {
99
+ if (specifier.startsWith(".") || specifier.startsWith("/")) {
100
+ const baseDir = path.posix.dirname(sourcePath);
101
+ // Strip .js extension if present (ESM imports use .js but source files are .ts)
102
+ const pathWithoutJs = specifier.endsWith(".js") ? specifier.slice(0, -3) : specifier;
103
+ const joined = path.posix.normalize(path.posix.join(baseDir, pathWithoutJs));
104
+ const candidates = [
105
+ joined,
106
+ `${joined}.ts`,
107
+ `${joined}.tsx`,
108
+ `${joined}.js`,
109
+ `${joined}.jsx`,
110
+ `${joined}/index.ts`,
111
+ `${joined}/index.tsx`,
112
+ ];
113
+ for (const candidate of candidates) {
114
+ if (fileSet.has(candidate)) {
115
+ return { kind: "path", target: candidate };
116
+ }
117
+ }
118
+ return null;
119
+ }
120
+ return { kind: "package", target: specifier };
121
+ }
122
+ function collectDependencies(sourcePath, source, fileSet) {
123
+ const dependencies = new Map();
124
+ const record = (kind, dst) => {
125
+ const key = `${kind}:${dst}`;
126
+ if (!dependencies.has(key)) {
127
+ dependencies.set(key, { dstKind: kind, dst, rel: "import" });
128
+ }
129
+ };
130
+ const visit = (node) => {
131
+ if (ts.isImportDeclaration(node) &&
132
+ node.moduleSpecifier &&
133
+ ts.isStringLiteral(node.moduleSpecifier)) {
134
+ const target = normalizePathSpecifier(sourcePath, node.moduleSpecifier.text, fileSet);
135
+ if (target) {
136
+ record(target.kind, target.target);
137
+ }
138
+ }
139
+ else if (ts.isExportDeclaration(node) &&
140
+ node.moduleSpecifier &&
141
+ ts.isStringLiteral(node.moduleSpecifier)) {
142
+ const target = normalizePathSpecifier(sourcePath, node.moduleSpecifier.text, fileSet);
143
+ if (target) {
144
+ record(target.kind, target.target);
145
+ }
146
+ }
147
+ else if (ts.isCallExpression(node)) {
148
+ const firstArg = node.arguments[0];
149
+ if (node.expression.getText(source) === "require" &&
150
+ node.arguments.length === 1 &&
151
+ firstArg &&
152
+ ts.isStringLiteral(firstArg)) {
153
+ const target = normalizePathSpecifier(sourcePath, firstArg.text, fileSet);
154
+ if (target) {
155
+ record(target.kind, target.target);
156
+ }
157
+ }
158
+ }
159
+ ts.forEachChild(node, visit);
160
+ };
161
+ ts.forEachChild(source, visit);
162
+ return Array.from(dependencies.values());
163
+ }
164
+ export function analyzeSource(pathInRepo, lang, content, fileSet) {
165
+ const normalizedLang = lang ?? "";
166
+ if (!SUPPORTED_LANGUAGES.has(normalizedLang)) {
167
+ return { symbols: [], snippets: [], dependencies: [] };
168
+ }
169
+ const sourceFile = ts.createSourceFile(pathInRepo, content, ts.ScriptTarget.Latest, true);
170
+ const symbols = createSymbolRecords(sourceFile);
171
+ const snippets = symbols.map((symbol) => ({
172
+ startLine: symbol.rangeStartLine,
173
+ endLine: symbol.rangeEndLine,
174
+ symbolId: symbol.symbolId,
175
+ }));
176
+ const dependencies = collectDependencies(pathInRepo, sourceFile, fileSet);
177
+ return { symbols, snippets, dependencies };
178
+ }
179
+ export function buildFallbackSnippet(totalLines) {
180
+ return { startLine: 1, endLine: totalLines, symbolId: null };
181
+ }
182
+ //# sourceMappingURL=codeintel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeintel.js","sourceRoot":"","sources":["../../src/indexer/codeintel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { execFile } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ const execFileAsync = promisify(execFile);
4
+ export async function gitLsFiles(repoRoot) {
5
+ const { stdout } = await execFileAsync("git", ["ls-files", "-z"], { cwd: repoRoot });
6
+ return stdout
7
+ .split("\0")
8
+ .map((item) => item.trim())
9
+ .filter((item) => item.length > 0);
10
+ }
11
+ export async function getHeadCommit(repoRoot) {
12
+ const { stdout } = await execFileAsync("git", ["rev-parse", "HEAD"], { cwd: repoRoot });
13
+ return stdout.trim();
14
+ }
15
+ export async function getDefaultBranch(repoRoot) {
16
+ try {
17
+ const { stdout } = await execFileAsync("git", ["rev-parse", "--abbrev-ref", "HEAD"], {
18
+ cwd: repoRoot,
19
+ });
20
+ const branch = stdout.trim();
21
+ if (branch === "HEAD" || branch.length === 0) {
22
+ return null;
23
+ }
24
+ return branch;
25
+ }
26
+ catch {
27
+ return null;
28
+ }
29
+ }
30
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/indexer/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,MAAM;SACV,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB;IAClD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IACrD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE;YACnF,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,34 @@
1
+ const LANGUAGE_BY_EXTENSION = {
2
+ ".ts": "TypeScript",
3
+ ".tsx": "TypeScript",
4
+ ".js": "JavaScript",
5
+ ".jsx": "JavaScript",
6
+ ".json": "JSON",
7
+ ".md": "Markdown",
8
+ ".yml": "YAML",
9
+ ".yaml": "YAML",
10
+ ".py": "Python",
11
+ ".rs": "Rust",
12
+ ".go": "Go",
13
+ ".java": "Java",
14
+ ".rb": "Ruby",
15
+ ".c": "C",
16
+ ".h": "C",
17
+ ".cpp": "C++",
18
+ ".hpp": "C++",
19
+ ".cc": "C++",
20
+ ".hh": "C++",
21
+ ".cs": "C#",
22
+ ".php": "PHP",
23
+ ".swift": "Swift",
24
+ ".kt": "Kotlin",
25
+ ".m": "Objective-C",
26
+ ".mm": "Objective-C++",
27
+ ".scala": "Scala",
28
+ ".sh": "Shell",
29
+ };
30
+ export function detectLanguage(extension) {
31
+ const normalized = extension.toLowerCase();
32
+ return LANGUAGE_BY_EXTENSION[normalized] ?? null;
33
+ }
34
+ //# sourceMappingURL=language.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language.js","sourceRoot":"","sources":["../../src/indexer/language.ts"],"names":[],"mappings":"AAAA,MAAM,qBAAqB,GAA2B;IACpD,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,eAAe;IACtB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,qBAAqB,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;AACnD,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ import { parseSimpleYaml } from "../../../shared/utils/simpleYaml.js";
4
+ /**
5
+ * Globパターンを正規表現に変換(ReDoS対策済み)
6
+ * @param pattern Globパターン文字列
7
+ * @returns コンパイル済み正規表現
8
+ * @throws パターンが長すぎる、または複雑すぎる場合
9
+ */
10
+ function toRegex(pattern) {
11
+ // ReDoS対策: パターン長の制限
12
+ if (pattern.length > 500) {
13
+ throw new Error("Denylist pattern exceeds maximum length. Simplify the pattern.");
14
+ }
15
+ const normalized = pattern.endsWith("/") ? pattern.slice(0, -1) : pattern;
16
+ const escaped = normalized
17
+ .replace(/[.+^${}()|[\]\\]/g, "\\$&")
18
+ .replace(/\*\*/g, "::DOUBLESTAR::");
19
+ const withWildcards = escaped
20
+ .replace(/::DOUBLESTAR::/g, ".*")
21
+ .replace(/\*/g, "[^/]*")
22
+ .replace(/\?/g, ".");
23
+ const suffix = pattern.endsWith("/") ? "(?:/.*)?" : "";
24
+ // ReDoS対策: 最終パターンの複雑度チェック(ネストした量指定子)
25
+ const finalPattern = `^${withWildcards}${suffix}$`;
26
+ if (/(\*|\+|\{).*(\*|\+|\{).*(\*|\+|\{)/.test(finalPattern)) {
27
+ throw new Error("Denylist pattern is too complex. Use simpler glob patterns.");
28
+ }
29
+ return new RegExp(finalPattern);
30
+ }
31
+ function loadGitignore(repoRoot) {
32
+ try {
33
+ const raw = readFileSync(resolve(repoRoot, ".gitignore"), "utf8");
34
+ return raw
35
+ .split(/\r?\n/)
36
+ .map((line) => line.trim())
37
+ .filter((line) => line.length > 0 && !line.startsWith("#"));
38
+ }
39
+ catch {
40
+ return [];
41
+ }
42
+ }
43
+ export function loadDenylistConfig(configPath) {
44
+ const path = resolve(configPath ?? "config/denylist.yml");
45
+ const content = readFileSync(path, "utf8");
46
+ const parsed = parseSimpleYaml(content);
47
+ const patterns = Array.isArray(parsed.patterns)
48
+ ? parsed.patterns.filter((value) => typeof value === "string")
49
+ : [];
50
+ if (patterns.length === 0) {
51
+ throw new Error("config/denylist.yml must contain patterns array");
52
+ }
53
+ return { patterns };
54
+ }
55
+ export function createDenylistFilter(repoRoot, configPath) {
56
+ const { patterns } = loadDenylistConfig(configPath);
57
+ const gitignorePatterns = loadGitignore(repoRoot);
58
+ const combined = Array.from(new Set([...patterns, ...gitignorePatterns]));
59
+ const regexList = combined.map(toRegex);
60
+ const diffEntries = gitignorePatterns.filter((pattern) => !patterns.includes(pattern));
61
+ return {
62
+ isDenied(path) {
63
+ const normalized = path.startsWith("/") ? path.slice(1) : path;
64
+ return regexList.some((regex) => regex.test(normalized));
65
+ },
66
+ diff() {
67
+ return diffEntries;
68
+ },
69
+ };
70
+ }
71
+ //# sourceMappingURL=denylist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"denylist.js","sourceRoot":"","sources":["../../../../src/indexer/pipeline/filters/denylist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ export async function ensureBaseSchema(db) {
2
+ await db.run(`
3
+ CREATE SEQUENCE IF NOT EXISTS repo_id_seq START 1
4
+ `);
5
+ await db.run(`
6
+ CREATE TABLE IF NOT EXISTS repo (
7
+ id INTEGER PRIMARY KEY DEFAULT nextval('repo_id_seq'),
8
+ root TEXT NOT NULL UNIQUE,
9
+ default_branch TEXT,
10
+ indexed_at TIMESTAMP
11
+ )
12
+ `);
13
+ await db.run(`
14
+ CREATE TABLE IF NOT EXISTS blob (
15
+ hash TEXT PRIMARY KEY,
16
+ size_bytes INTEGER,
17
+ line_count INTEGER,
18
+ content TEXT
19
+ )
20
+ `);
21
+ await db.run(`
22
+ CREATE TABLE IF NOT EXISTS tree (
23
+ repo_id INTEGER,
24
+ commit_hash TEXT,
25
+ path TEXT,
26
+ blob_hash TEXT,
27
+ ext TEXT,
28
+ lang TEXT,
29
+ is_binary BOOLEAN,
30
+ mtime TIMESTAMP,
31
+ PRIMARY KEY (repo_id, commit_hash, path)
32
+ )
33
+ `);
34
+ await db.run(`
35
+ CREATE TABLE IF NOT EXISTS file (
36
+ repo_id INTEGER,
37
+ path TEXT,
38
+ blob_hash TEXT,
39
+ ext TEXT,
40
+ lang TEXT,
41
+ is_binary BOOLEAN,
42
+ mtime TIMESTAMP,
43
+ PRIMARY KEY (repo_id, path)
44
+ )
45
+ `);
46
+ await db.run(`
47
+ CREATE INDEX IF NOT EXISTS idx_file_lang ON file(repo_id, lang)
48
+ `);
49
+ await db.run(`
50
+ CREATE TABLE IF NOT EXISTS symbol (
51
+ repo_id INTEGER,
52
+ path TEXT,
53
+ symbol_id BIGINT,
54
+ name TEXT,
55
+ kind TEXT,
56
+ range_start_line INTEGER,
57
+ range_end_line INTEGER,
58
+ signature TEXT,
59
+ doc TEXT,
60
+ PRIMARY KEY (repo_id, path, symbol_id)
61
+ )
62
+ `);
63
+ await db.run(`
64
+ CREATE INDEX IF NOT EXISTS idx_symbol_name ON symbol(repo_id, name)
65
+ `);
66
+ await db.run(`
67
+ CREATE TABLE IF NOT EXISTS snippet (
68
+ repo_id INTEGER,
69
+ path TEXT,
70
+ snippet_id BIGINT,
71
+ start_line INTEGER,
72
+ end_line INTEGER,
73
+ symbol_id BIGINT NULL,
74
+ PRIMARY KEY (repo_id, path, snippet_id)
75
+ )
76
+ `);
77
+ await db.run(`
78
+ CREATE TABLE IF NOT EXISTS dependency (
79
+ repo_id INTEGER,
80
+ src_path TEXT,
81
+ dst_kind TEXT,
82
+ dst TEXT,
83
+ rel TEXT,
84
+ PRIMARY KEY (repo_id, src_path, dst_kind, dst, rel)
85
+ )
86
+ `);
87
+ await db.run(`
88
+ CREATE INDEX IF NOT EXISTS idx_dep_src ON dependency(repo_id, src_path)
89
+ `);
90
+ await db.run(`
91
+ CREATE TABLE IF NOT EXISTS file_embedding (
92
+ repo_id INTEGER,
93
+ path TEXT,
94
+ dims INTEGER NOT NULL,
95
+ vector_json TEXT NOT NULL,
96
+ updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
97
+ PRIMARY KEY (repo_id, path)
98
+ )
99
+ `);
100
+ }
101
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/indexer/schema.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAgB;IACrD,MAAM,EAAE,CAAC,GAAG,CAAC;;GAEZ,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,GAAG,CAAC;;;;;;;GAOZ,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,GAAG,CAAC;;;;;;;GAOZ,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,GAAG,CAAC;;;;;;;;;;;;GAYZ,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,GAAG,CAAC;;;;;;;;;;;GAWZ,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,GAAG,CAAC;;GAEZ,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,GAAG,CAAC;;;;;;;;;;;;;GAaZ,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,GAAG,CAAC;;GAEZ,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,GAAG,CAAC;;;;;;;;;;GAUZ,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,GAAG,CAAC;;;;;;;;;GASZ,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,GAAG,CAAC;;GAEZ,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,GAAG,CAAC;;;;;;;;;GASZ,CAAC,CAAC;AACL,CAAC"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kiri-mcp-server",
3
- "version": "0.9.6",
3
+ "version": "0.9.9",
4
4
  "description": "KIRI context extraction platform",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@9.0.0",
@@ -56,6 +56,13 @@
56
56
  "dev": "tsx src/server/main.ts --port 8765",
57
57
  "lint": "eslint \"{src,tests,scripts}/**/*.{ts,tsx}\" && prettier --check \"**/*.{ts,tsx,json,md,yml}\"",
58
58
  "test": "vitest run --coverage --pool=forks --poolOptions.forks.singleFork --poolOptions.forks.maxForks=1 --poolOptions.forks.minForks=1",
59
+ "verify": "tsx scripts/test/verify-all.ts",
60
+ "verify:unit": "tsx scripts/test/verify-all.ts --category unit",
61
+ "verify:dart": "tsx scripts/test/verify-all.ts --category dart",
62
+ "verify:integration": "tsx scripts/test/verify-all.ts --category integration",
63
+ "verify:tools": "tsx scripts/test/verify-all.ts --category tools",
64
+ "verify:watch": "tsx scripts/test/verify-all.ts --category watch",
65
+ "verify:eval": "tsx scripts/test/verify-all.ts --category eval",
59
66
  "check": "pnpm run lint && pnpm run test",
60
67
  "prepublishOnly": "pnpm run build"
61
68
  },
@@ -63,7 +70,9 @@
63
70
  "chokidar": "^4.0.3",
64
71
  "duckdb": "^1.1.0",
65
72
  "gpt-tokenizer": "^3.2.0",
73
+ "p-queue": "^9.0.0",
66
74
  "tree-sitter": "^0.22.0",
75
+ "tree-sitter-java": "^0.23.2",
67
76
  "tree-sitter-php": "^0.22.8",
68
77
  "tree-sitter-swift": "0.7.1",
69
78
  "typescript": "^5.6.3",
@@ -78,6 +87,7 @@
78
87
  "eslint": "^9.9.0",
79
88
  "eslint-config-prettier": "^9.1.0",
80
89
  "eslint-plugin-import": "^2.29.1",
90
+ "execa": "^9.6.0",
81
91
  "lint-staged": "^15.2.10",
82
92
  "prettier": "^3.3.3",
83
93
  "simple-git-hooks": "^2.10.0",
@@ -0,0 +1,19 @@
1
+ import { assertSecurityBaseline, evaluateSecurityStatus, updateSecurityLock, } from "../shared/security/config.js";
2
+ export function bootstrapServer(options = {}) {
3
+ const security = evaluateSecurityStatus(options.securityConfigPath, options.securityLockPath);
4
+ if (!security.matches) {
5
+ if (!security.lockHash && options.allowWriteLock) {
6
+ updateSecurityLock(security.hash, options.securityLockPath);
7
+ return {
8
+ security: {
9
+ ...security,
10
+ lockHash: security.hash,
11
+ matches: true,
12
+ },
13
+ };
14
+ }
15
+ assertSecurityBaseline(options.securityConfigPath, options.securityLockPath);
16
+ }
17
+ return { security };
18
+ }
19
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/server/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAYtC,MAAM,UAAU,eAAe,CAAC,UAA4B,EAAE;IAC5D,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9F,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YACjD,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC5D,OAAO;gBACL,QAAQ,EAAE;oBACR,GAAG,QAAQ;oBACX,QAAQ,EAAE,QAAQ,CAAC,IAAI;oBACvB,OAAO,EAAE,IAAI;iBACd;aACF,CAAC;QACJ,CAAC;QACD,sBAAsB,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/server/context.ts"],"names":[],"mappings":""}
@@ -0,0 +1,69 @@
1
+ import { readFileSync, readdirSync, statSync } from "node:fs";
2
+ import { join, relative as relativePath, resolve } from "node:path";
3
+ export class DegradeController {
4
+ state = { active: false, reason: null, since: null };
5
+ repoRoot;
6
+ constructor(repoRoot) {
7
+ this.repoRoot = resolve(repoRoot);
8
+ }
9
+ get current() {
10
+ return this.state;
11
+ }
12
+ enable(reason) {
13
+ if (this.state.active) {
14
+ return;
15
+ }
16
+ this.state = { active: true, reason, since: new Date() };
17
+ }
18
+ disable() {
19
+ this.state = { active: false, reason: null, since: null };
20
+ }
21
+ async withResource(operation, reason) {
22
+ if (this.state.active) {
23
+ throw new Error(`Server is running in degrade mode: ${this.state.reason ?? "unknown"}. Only files.search is available.`);
24
+ }
25
+ try {
26
+ const result = await operation();
27
+ return result;
28
+ }
29
+ catch (error) {
30
+ this.enable(reason);
31
+ throw error;
32
+ }
33
+ }
34
+ search(query, limit = 20) {
35
+ const tokens = query.split(/\s+/).filter((token) => token.length > 0);
36
+ if (tokens.length === 0) {
37
+ return [];
38
+ }
39
+ const results = [];
40
+ this.walkFiles(this.repoRoot, (absolutePath, relativeFile) => {
41
+ if (results.length >= limit) {
42
+ return;
43
+ }
44
+ const content = readFileSync(absolutePath, "utf8");
45
+ const lines = content.split(/\r?\n/);
46
+ const matchIndex = lines.findIndex((line) => tokens.every((token) => line.includes(token)));
47
+ if (matchIndex >= 0) {
48
+ const preview = lines.slice(matchIndex, matchIndex + 3).join("\n");
49
+ results.push({ path: relativeFile, preview, matchLine: matchIndex + 1 });
50
+ }
51
+ });
52
+ return results;
53
+ }
54
+ walkFiles(root, visitor) {
55
+ const entries = readdirSync(root);
56
+ for (const entry of entries) {
57
+ const absolute = join(root, entry);
58
+ const relative = relativePath(this.repoRoot, absolute);
59
+ const stats = statSync(absolute);
60
+ if (stats.isDirectory()) {
61
+ this.walkFiles(absolute, visitor);
62
+ }
63
+ else if (stats.isFile()) {
64
+ visitor(absolute, relative);
65
+ }
66
+ }
67
+ }
68
+ }
69
+ //# sourceMappingURL=degradeController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"degradeController.js","sourceRoot":"","sources":["../../../src/server/fallbacks/degradeController.ts"],"names":[],"mappings":"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"}