codebaseiq 0.1.0 → 0.2.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 (422) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/augment-vue-worker.js +1 -1
  3. package/dist/{chunk-DQMDCD24.js → chunk-27PHVDKL.js} +2 -2
  4. package/dist/{chunk-ZMI2JSX2.js → chunk-2DMVFAY7.js} +2 -2
  5. package/dist/{chunk-5PUWMSDU.js → chunk-2E6BTWER.js} +2 -2
  6. package/dist/{chunk-YESXMKX3.js → chunk-2F5ERMNI.js} +2 -2
  7. package/dist/chunk-2VKB5CMA.js +60 -0
  8. package/dist/{chunk-NNJ2KZZG.js → chunk-327YK6TB.js} +4 -4
  9. package/dist/chunk-347TXATM.js +2 -0
  10. package/dist/{chunk-VEXUL62T.js → chunk-35YYZD3D.js} +2 -2
  11. package/dist/chunk-36WRYYTE.js +3 -0
  12. package/dist/chunk-37TKC6MB.js +2 -0
  13. package/dist/{chunk-FAJQ7LWY.js → chunk-3AC56WAR.js} +2 -2
  14. package/dist/{chunk-JE3WZ6II.js → chunk-3NUZVLR7.js} +2 -2
  15. package/dist/{chunk-UZGZB3VB.js → chunk-3XFJUWJE.js} +2 -2
  16. package/dist/{chunk-OVTS4DKB.js → chunk-4AOOSCZ7.js} +2 -2
  17. package/dist/{chunk-LU3BMVH2.js → chunk-4IFISPQW.js} +2 -2
  18. package/dist/chunk-4NHWNAWQ.js +11 -0
  19. package/dist/chunk-4O52YNKL.js +5 -0
  20. package/dist/{chunk-HPJRBHVT.js → chunk-54K6556S.js} +2 -2
  21. package/dist/{chunk-HRWGYWRJ.js → chunk-57GCCPLS.js} +2 -2
  22. package/dist/{chunk-J77SU6VA.js → chunk-57KEZDPT.js} +2 -2
  23. package/dist/{chunk-OFBE4NGP.js → chunk-57KFVPVZ.js} +2 -2
  24. package/dist/{chunk-WOQBZPIF.js → chunk-5BDK6QC3.js} +2 -2
  25. package/dist/{chunk-7MGU3HPH.js → chunk-5IO2APSS.js} +2 -2
  26. package/dist/chunk-5NJPH3QZ.js +61 -0
  27. package/dist/{chunk-GW6Z3WGY.js → chunk-5WXOEJ4G.js} +2 -2
  28. package/dist/chunk-5XEVXVTK.js +3 -0
  29. package/dist/{chunk-RR7SX44N.js → chunk-6OVNYYY4.js} +2 -2
  30. package/dist/{chunk-ZV3JV5G5.js → chunk-6SDEQTVY.js} +2 -2
  31. package/dist/{chunk-EF2R3WNQ.js → chunk-6URCE5QY.js} +2 -2
  32. package/dist/{chunk-UCD3H3UZ.js → chunk-6ZV5EDUT.js} +2 -2
  33. package/dist/{chunk-C6SBF2WH.js → chunk-77GHPR2R.js} +2 -2
  34. package/dist/{chunk-YVCIMIOC.js → chunk-7R64XY4Y.js} +2 -2
  35. package/dist/{chunk-VXYS3FZD.js → chunk-7Z7HCZ7J.js} +2 -2
  36. package/dist/{chunk-CO5R3UNA.js → chunk-A67HT5FR.js} +2 -2
  37. package/dist/{chunk-UDS562V4.js → chunk-A7XQT7MH.js} +2 -2
  38. package/dist/{chunk-RDBI2RXU.js → chunk-ACZDU5GK.js} +2 -2
  39. package/dist/{chunk-FETNQCFO.js → chunk-AM5SUGHF.js} +2 -2
  40. package/dist/{chunk-NNOKTMZT.js → chunk-B2E3HZ2A.js} +2 -2
  41. package/dist/{chunk-CVYSU6BX.js → chunk-BH5CE4LN.js} +2 -2
  42. package/dist/chunk-BLKYYQ7C.js +543 -0
  43. package/dist/{chunk-4WKDMDEW.js → chunk-BX2U3QQV.js} +2 -2
  44. package/dist/{chunk-ZKX2FRS6.js → chunk-CANBLFVQ.js} +2 -2
  45. package/dist/{chunk-SMRBZ6EC.js → chunk-CCRZLRWJ.js} +2 -2
  46. package/dist/chunk-CDWSLAPN.js +21 -0
  47. package/dist/chunk-CIVYHK7U.js +22 -0
  48. package/dist/{chunk-L57ZKWVG.js → chunk-CMXW7MFV.js} +2 -2
  49. package/dist/{chunk-T3DGWPXM.js → chunk-CSZOQ7YO.js} +2 -2
  50. package/dist/{chunk-ZZXSWSN6.js → chunk-CWMHWD56.js} +2 -2
  51. package/dist/{chunk-6NW7MU72.js → chunk-CZEIHYMP.js} +2 -2
  52. package/dist/{chunk-DO6WQD2T.js → chunk-D62CTZX6.js} +2 -2
  53. package/dist/{chunk-XWUOUWYI.js → chunk-DFPAZXLU.js} +2 -2
  54. package/dist/{chunk-MOVBWNIP.js → chunk-DKJXK3HA.js} +2 -2
  55. package/dist/{chunk-XMQ23E27.js → chunk-DLC6JDN7.js} +2 -2
  56. package/dist/chunk-DUKHVPU5.js +4 -0
  57. package/dist/{chunk-ID63777H.js → chunk-DVYG3JTA.js} +2 -2
  58. package/dist/{chunk-NE6IU5ZD.js → chunk-EFFMFK7C.js} +2 -2
  59. package/dist/{chunk-I2T2LLK2.js → chunk-EM5UHLAM.js} +2 -2
  60. package/dist/chunk-EN4AHLL3.js +3 -0
  61. package/dist/chunk-EXMVF3JR.js +3 -0
  62. package/dist/{chunk-SWHMHUKF.js → chunk-FEBLLMTL.js} +2 -2
  63. package/dist/chunk-FIXYHQ3W.js +3 -0
  64. package/dist/{chunk-RKEJ6VTF.js → chunk-FLLXYUOL.js} +2 -2
  65. package/dist/{chunk-KWVHSKHK.js → chunk-FPDL2TUB.js} +2 -2
  66. package/dist/chunk-FQA3KIFX.js +17 -0
  67. package/dist/chunk-FWY2PRIF.js +3 -0
  68. package/dist/chunk-FY5V4V4F.js +2 -0
  69. package/dist/chunk-G2XUZCF2.js +88 -0
  70. package/dist/{chunk-QHRNXP3C.js → chunk-GXVDTHFC.js} +2 -2
  71. package/dist/{chunk-6MUIJMVL.js → chunk-H3CKAL6P.js} +2 -2
  72. package/dist/chunk-H5QXP63L.js +2 -0
  73. package/dist/{chunk-VUIYB2V3.js → chunk-HBQGKMM3.js} +2 -2
  74. package/dist/{chunk-PYAB5SM6.js → chunk-HBXZAGY6.js} +2 -2
  75. package/dist/{chunk-NNO6A2PO.js → chunk-HCMQZPEO.js} +2 -2
  76. package/dist/{chunk-Q65CQ4XL.js → chunk-HHBBGWES.js} +2 -2
  77. package/dist/{chunk-GTXSJDCO.js → chunk-HIEXRDJF.js} +2 -2
  78. package/dist/{chunk-4FC325IF.js → chunk-HYKSLTAR.js} +2 -2
  79. package/dist/{chunk-XLQ3GLWZ.js → chunk-I2KP4AGR.js} +2 -2
  80. package/dist/chunk-I5FCDTK2.js +2 -0
  81. package/dist/{chunk-QKPLA6IC.js → chunk-I645ZF75.js} +2 -2
  82. package/dist/{chunk-FDGD5AB5.js → chunk-IBM3F2BJ.js} +2 -2
  83. package/dist/{chunk-Q72QSKXC.js → chunk-IEL6Q5W3.js} +38 -38
  84. package/dist/{chunk-NCZUNH3E.js → chunk-IGQQUENU.js} +12 -12
  85. package/dist/chunk-IGYAZPRX.js +4 -0
  86. package/dist/chunk-IOVPAZWP.js +3 -0
  87. package/dist/{chunk-OL6KJP3N.js → chunk-IVJJNVSX.js} +2 -2
  88. package/dist/{chunk-AKB7V7TV.js → chunk-IWAMYGPN.js} +2 -2
  89. package/dist/chunk-IYBIBMPF.js +90 -0
  90. package/dist/{chunk-IOP6FWIM.js → chunk-J24VICI5.js} +2 -2
  91. package/dist/{chunk-C7QOQX32.js → chunk-JN5LIBT3.js} +2 -2
  92. package/dist/{chunk-O6QTXQPJ.js → chunk-JOALNFY3.js} +2 -2
  93. package/dist/{chunk-GCHRX4YW.js → chunk-JUO3Z644.js} +2 -2
  94. package/dist/{chunk-BJ6SQAEN.js → chunk-JXHLB7TP.js} +2 -2
  95. package/dist/{chunk-IJ4HMYBE.js → chunk-JYX5UZSZ.js} +2 -2
  96. package/dist/chunk-K2O7SBAU.js +2 -0
  97. package/dist/{chunk-OLF4MA5W.js → chunk-K5G7SPAG.js} +2 -2
  98. package/dist/{chunk-YSNONTJ2.js → chunk-KDYQQJ6X.js} +2 -2
  99. package/dist/{chunk-7NVGT435.js → chunk-KM4QRWI5.js} +2 -2
  100. package/dist/{chunk-HKQUXIFO.js → chunk-KNV5VFDV.js} +2 -2
  101. package/dist/chunk-L3YSDLNB.js +2 -0
  102. package/dist/{chunk-EZNMUY67.js → chunk-LAGDJXFY.js} +2 -2
  103. package/dist/{chunk-ENCCHKM6.js → chunk-LY2NB5XR.js} +4 -4
  104. package/dist/chunk-M4EVGA5S.js +14 -0
  105. package/dist/chunk-M7LAIM77.js +127 -0
  106. package/dist/{chunk-BVAJLC5A.js → chunk-MRGTCMDK.js} +2 -2
  107. package/dist/{chunk-OZYRSMSH.js → chunk-MT5W4DUG.js} +2 -2
  108. package/dist/{chunk-VE5AVNMP.js → chunk-MTMF4N7F.js} +2 -2
  109. package/dist/chunk-N3Q3AWGW.js +545 -0
  110. package/dist/{chunk-TXXOEMZJ.js → chunk-NDGTJHQN.js} +2 -2
  111. package/dist/chunk-NIO346UL.js +2 -0
  112. package/dist/chunk-NJA4MMBD.js +2 -0
  113. package/dist/{chunk-7FND7D7N.js → chunk-NK76RSB6.js} +2 -2
  114. package/dist/{chunk-H3LGFZVK.js → chunk-NTRW52UR.js} +2 -2
  115. package/dist/{chunk-JOIRNPPY.js → chunk-OJFLPVBP.js} +2 -2
  116. package/dist/{chunk-KMITESMT.js → chunk-OMBRP7BB.js} +2 -2
  117. package/dist/{chunk-UP3BUZR5.js → chunk-OVKZM2XI.js} +2 -2
  118. package/dist/{chunk-MVB3DAEY.js → chunk-PARCKE3Q.js} +2 -2
  119. package/dist/{chunk-CAUCPUOF.js → chunk-PFPHS4NO.js} +2 -2
  120. package/dist/chunk-PHPQ24UG.js +22 -0
  121. package/dist/chunk-PLZXWZHY.js +77 -0
  122. package/dist/{chunk-34WBMAYK.js → chunk-PNVZIJ57.js} +2 -2
  123. package/dist/{chunk-SYDJMPES.js → chunk-QKVTWODE.js} +2 -2
  124. package/dist/{chunk-FW53T7EB.js → chunk-QLTFXVUI.js} +2 -2
  125. package/dist/{chunk-PBI2LFKH.js → chunk-QMGWSEPL.js} +2 -2
  126. package/dist/{chunk-CQP3THUZ.js → chunk-QVHZB75Z.js} +2 -2
  127. package/dist/{chunk-6BQ3DSPK.js → chunk-QVWDQTMG.js} +2 -2
  128. package/dist/{chunk-ST7V3SKN.js → chunk-RCPZOPV6.js} +2 -2
  129. package/dist/chunk-RJWAB4VR.js +345 -0
  130. package/dist/chunk-RRPK327J.js +20 -0
  131. package/dist/chunk-RVYLJDXC.js +21 -0
  132. package/dist/chunk-RWKEXCHU.js +3 -0
  133. package/dist/{chunk-L4NRUAGJ.js → chunk-S5SKXCND.js} +2 -2
  134. package/dist/{chunk-RBAS5ZHI.js → chunk-S64NCE2Z.js} +2 -2
  135. package/dist/{chunk-WMPRTGH2.js → chunk-SF34QLK2.js} +2 -2
  136. package/dist/{chunk-ANFVSJWQ.js → chunk-SJZQ2PTZ.js} +2 -2
  137. package/dist/{chunk-4XTAUQFD.js → chunk-SRY26ITJ.js} +2 -2
  138. package/dist/chunk-SV2LEFVM.js +2 -0
  139. package/dist/{chunk-7XAN6GKB.js → chunk-T3YFIJ5P.js} +2 -2
  140. package/dist/chunk-T55YPJGB.js +3 -0
  141. package/dist/chunk-TAJ6UGCO.js +21 -0
  142. package/dist/{chunk-PIOMTC27.js → chunk-TUTSO7UZ.js} +2 -2
  143. package/dist/{chunk-FQKZWM4L.js → chunk-U24M5RQM.js} +5 -5
  144. package/dist/{chunk-XME3HPXZ.js → chunk-U2XX3BT4.js} +2 -2
  145. package/dist/{chunk-SZD2KF7Q.js → chunk-UWB5WMC2.js} +2 -2
  146. package/dist/{chunk-6CS3UQTN.js → chunk-VCL7FK3E.js} +2 -2
  147. package/dist/{chunk-N3IQCBCF.js → chunk-VCWAJPXQ.js} +2 -2
  148. package/dist/{chunk-LZYFLFEH.js → chunk-VG55NFXF.js} +2 -2
  149. package/dist/{chunk-PTAWHLVJ.js → chunk-VLTUX4IF.js} +2 -2
  150. package/dist/{chunk-JEJLSICM.js → chunk-VVCBMH5O.js} +2 -2
  151. package/dist/{chunk-JSOYNVWH.js → chunk-VYZQZ4ZN.js} +2 -2
  152. package/dist/chunk-W3FK73MD.js +8 -0
  153. package/dist/{chunk-UNBY47BC.js → chunk-W6C6QTXJ.js} +2 -2
  154. package/dist/chunk-WH5SYOMD.js +2 -0
  155. package/dist/chunk-WJOQC4P7.js +7 -0
  156. package/dist/chunk-WO47BIPY.js +3 -0
  157. package/dist/chunk-WOOTEWQT.js +239 -0
  158. package/dist/{chunk-UBGWN7I4.js → chunk-X5I2BQGX.js} +2 -2
  159. package/dist/{chunk-PX4RYAAK.js → chunk-XNUWRTYM.js} +2 -2
  160. package/dist/{chunk-ICFDQHAM.js → chunk-XUJM6474.js} +2 -2
  161. package/dist/chunk-XYLV727H.js +21 -0
  162. package/dist/{chunk-TRRC4ZJ7.js → chunk-YFQPWKHR.js} +2 -2
  163. package/dist/{chunk-NEDP5RFQ.js → chunk-YIOQJ45A.js} +2 -2
  164. package/dist/{chunk-Y6KHROC3.js → chunk-YXJ4IAHH.js} +2 -2
  165. package/dist/chunk-YYFV32WR.js +3 -0
  166. package/dist/{chunk-BH5F2Q4O.js → chunk-ZB3V5QM7.js} +2 -2
  167. package/dist/chunk-ZJZQ7Q2Q.js +3 -0
  168. package/dist/{chunk-EMNIHCRB.js → chunk-ZNQCR656.js} +2 -2
  169. package/dist/{chunk-TIIC3ZE7.js → chunk-ZOEDRCR4.js} +2 -2
  170. package/dist/cli-context-TSADTXLB.js +2 -0
  171. package/dist/cli-context-XEPPF4RX.js +3 -0
  172. package/dist/cli-program-KJGQEM72.js +7 -0
  173. package/dist/cli.js +1 -1
  174. package/dist/{code-DlqpBDd0.d.ts → code-CDe-mIjx.d.ts} +1 -1
  175. package/dist/code-viewer-YGDON6SY.js +12 -0
  176. package/dist/code-viewer-ZCTHXQ5C.js +11 -0
  177. package/dist/command-descriptors-5VAB2MZX.js +335 -0
  178. package/dist/command-descriptors-EAHKIRAG.js +337 -0
  179. package/dist/{config-types-BNoC96J3.d.ts → config-types-D6X5S68_.d.ts} +50 -0
  180. package/dist/{db-D7sauVFH.d.ts → db-DmRNdCtm.d.ts} +1 -1
  181. package/dist/direct-navigation-B3SGOOBW.js +2 -0
  182. package/dist/direct-navigation-ZL362KXF.js +3 -0
  183. package/dist/{graph-evidence-BIFqyisO.d.ts → graph-evidence-Bs54NWws.d.ts} +1 -1
  184. package/dist/{health-DJaZXg8I.d.ts → health-BnzbSLCE.d.ts} +1 -1
  185. package/dist/index.d.ts +2 -2
  186. package/dist/index.js +1 -1
  187. package/dist/invocation-command-descriptors-CSUGUHTT.js +2 -0
  188. package/dist/invocation-command-descriptors-PPVZOIE5.js +3 -0
  189. package/dist/output-continuation-command-FTVVBVSN.js +2 -0
  190. package/dist/output-continuation-command-ITPRC3YV.js +3 -0
  191. package/dist/project-reindex-7HZSLLLY.js +3 -0
  192. package/dist/project-reindex-NGM3DYBN.js +2 -0
  193. package/dist/queries/affected.d.ts +2 -2
  194. package/dist/queries/affected.js +1 -1
  195. package/dist/queries/anchors.d.ts +2 -2
  196. package/dist/queries/anchors.js +1 -1
  197. package/dist/queries/architecture.d.ts +2 -2
  198. package/dist/queries/architecture.js +1 -1
  199. package/dist/queries/bottlenecks.d.ts +2 -2
  200. package/dist/queries/bottlenecks.js +1 -1
  201. package/dist/queries/by-kind.d.ts +2 -2
  202. package/dist/queries/by-kind.js +1 -1
  203. package/dist/queries/call-graph.d.ts +2 -2
  204. package/dist/queries/call-graph.js +1 -1
  205. package/dist/queries/change-surface.d.ts +2 -2
  206. package/dist/queries/change-surface.js +1 -1
  207. package/dist/queries/cleanup-plan.d.ts +2 -2
  208. package/dist/queries/cleanup-plan.js +1 -1
  209. package/dist/queries/co-change.d.ts +2 -2
  210. package/dist/queries/co-change.js +1 -1
  211. package/dist/queries/code.d.ts +3 -3
  212. package/dist/queries/code.js +1 -1
  213. package/dist/queries/complexity-hotspots.d.ts +2 -2
  214. package/dist/queries/complexity-hotspots.js +1 -1
  215. package/dist/queries/complexity.d.ts +2 -2
  216. package/dist/queries/complexity.js +1 -1
  217. package/dist/queries/context.d.ts +2 -2
  218. package/dist/queries/context.js +1 -1
  219. package/dist/queries/convergence.d.ts +2 -2
  220. package/dist/queries/convergence.js +1 -1
  221. package/dist/queries/coupling.d.ts +2 -2
  222. package/dist/queries/coupling.js +1 -1
  223. package/dist/queries/cycles.d.ts +2 -2
  224. package/dist/queries/cycles.js +1 -1
  225. package/dist/queries/dataflow.d.ts +2 -2
  226. package/dist/queries/dataflow.js +1 -1
  227. package/dist/queries/dead.d.ts +2 -2
  228. package/dist/queries/dead.js +1 -1
  229. package/dist/queries/decorative-checkers.d.ts +2 -2
  230. package/dist/queries/decorative-checkers.js +1 -1
  231. package/dist/queries/deep-chains.d.ts +2 -2
  232. package/dist/queries/deep-chains.js +1 -1
  233. package/dist/queries/dependence-slice.d.ts +3 -3
  234. package/dist/queries/dependence-slice.js +1 -1
  235. package/dist/queries/dependency-depth.d.ts +2 -2
  236. package/dist/queries/dependency-depth.js +1 -1
  237. package/dist/queries/deps.d.ts +2 -2
  238. package/dist/queries/deps.js +1 -1
  239. package/dist/queries/diff-impact.d.ts +2 -2
  240. package/dist/queries/diff-impact.js +1 -1
  241. package/dist/queries/doc-drift.d.ts +2 -2
  242. package/dist/queries/doc-drift.js +1 -1
  243. package/dist/queries/drift.d.ts +2 -2
  244. package/dist/queries/drift.js +1 -1
  245. package/dist/queries/duplicate-bodies.d.ts +2 -2
  246. package/dist/queries/duplicate-bodies.js +1 -1
  247. package/dist/queries/entry-map.d.ts +2 -2
  248. package/dist/queries/entry-map.js +1 -1
  249. package/dist/queries/evidence.d.ts +3 -3
  250. package/dist/queries/evidence.js +1 -1
  251. package/dist/queries/extract-candidates.d.ts +2 -2
  252. package/dist/queries/extract-candidates.js +1 -1
  253. package/dist/queries/fan.d.ts +2 -2
  254. package/dist/queries/fan.js +1 -1
  255. package/dist/queries/files.d.ts +2 -2
  256. package/dist/queries/files.js +1 -1
  257. package/dist/queries/health.d.ts +3 -3
  258. package/dist/queries/health.js +1 -1
  259. package/dist/queries/hierarchy.d.ts +2 -2
  260. package/dist/queries/hierarchy.js +1 -1
  261. package/dist/queries/hotspots.d.ts +2 -2
  262. package/dist/queries/hotspots.js +1 -1
  263. package/dist/queries/imports.d.ts +2 -2
  264. package/dist/queries/imports.js +1 -1
  265. package/dist/queries/incomplete-migration.d.ts +2 -2
  266. package/dist/queries/incomplete-migration.js +1 -1
  267. package/dist/queries/index.d.ts +5 -5
  268. package/dist/queries/index.js +1 -1
  269. package/dist/queries/isolated.d.ts +2 -2
  270. package/dist/queries/isolated.js +1 -1
  271. package/dist/queries/locality-candidates.d.ts +2 -2
  272. package/dist/queries/locality-candidates.js +1 -1
  273. package/dist/queries/members.d.ts +2 -2
  274. package/dist/queries/members.js +1 -1
  275. package/dist/queries/methods.d.ts +2 -2
  276. package/dist/queries/methods.js +1 -1
  277. package/dist/queries/not-implemented.d.ts +2 -2
  278. package/dist/queries/not-implemented.js +1 -1
  279. package/dist/queries/outline.d.ts +2 -2
  280. package/dist/queries/outline.js +1 -1
  281. package/dist/queries/passthrough-candidates.d.ts +2 -2
  282. package/dist/queries/passthrough-candidates.js +1 -1
  283. package/dist/queries/plan-context.d.ts +2 -2
  284. package/dist/queries/plan-context.js +1 -1
  285. package/dist/queries/react-component-duplicates.d.ts +2 -2
  286. package/dist/queries/react-component-duplicates.js +1 -1
  287. package/dist/queries/react-hook-candidates.d.ts +2 -2
  288. package/dist/queries/react-hook-candidates.js +1 -1
  289. package/dist/queries/react-large-component-pressure.d.ts +2 -2
  290. package/dist/queries/react-large-component-pressure.js +1 -1
  291. package/dist/queries/recent-duplicates.d.ts +2 -2
  292. package/dist/queries/recent-duplicates.js +1 -1
  293. package/dist/queries/redundant-reexports.d.ts +2 -2
  294. package/dist/queries/redundant-reexports.js +1 -1
  295. package/dist/queries/reference-neighborhood.d.ts +2 -2
  296. package/dist/queries/reference-neighborhood.js +1 -1
  297. package/dist/queries/reference-reachability.d.ts +2 -2
  298. package/dist/queries/reference-reachability.js +1 -1
  299. package/dist/queries/refs.d.ts +2 -2
  300. package/dist/queries/refs.js +1 -1
  301. package/dist/queries/self-audit.d.ts +2 -2
  302. package/dist/queries/self-audit.js +1 -1
  303. package/dist/queries/similar-chains.d.ts +2 -2
  304. package/dist/queries/similar-chains.js +1 -1
  305. package/dist/queries/similar-files.d.ts +2 -2
  306. package/dist/queries/similar-files.js +1 -1
  307. package/dist/queries/similar-signatures.d.ts +2 -2
  308. package/dist/queries/similar-signatures.js +1 -1
  309. package/dist/queries/similar.d.ts +2 -2
  310. package/dist/queries/similar.js +1 -1
  311. package/dist/queries/slice.d.ts +2 -2
  312. package/dist/queries/slice.js +1 -1
  313. package/dist/queries/source-inspection.d.ts +4 -4
  314. package/dist/queries/source-inspection.js +1 -1
  315. package/dist/queries/source-search.d.ts +2 -2
  316. package/dist/queries/source-search.js +1 -1
  317. package/dist/queries/stale-abstractions.d.ts +2 -2
  318. package/dist/queries/stale-abstractions.js +1 -1
  319. package/dist/queries/stats.d.ts +2 -2
  320. package/dist/queries/surface.d.ts +2 -2
  321. package/dist/queries/surface.js +1 -1
  322. package/dist/queries/symbols.d.ts +2 -2
  323. package/dist/queries/symbols.js +1 -1
  324. package/dist/queries/system-map.d.ts +2 -2
  325. package/dist/queries/system-map.js +1 -1
  326. package/dist/queries/system.d.ts +2 -2
  327. package/dist/queries/system.js +1 -1
  328. package/dist/queries/test-quality.d.ts +2 -2
  329. package/dist/queries/test-quality.js +1 -1
  330. package/dist/queries/trace.d.ts +2 -2
  331. package/dist/queries/trace.js +1 -1
  332. package/dist/queries/twin-ab.d.ts +2 -2
  333. package/dist/queries/twin-ab.js +1 -1
  334. package/dist/queries/twin-drift.d.ts +2 -2
  335. package/dist/queries/twin-drift.js +1 -1
  336. package/dist/queries/unused-imports.d.ts +2 -2
  337. package/dist/queries/unused-imports.js +1 -1
  338. package/dist/queries/unused-params.d.ts +2 -2
  339. package/dist/queries/unused-params.js +1 -1
  340. package/dist/queries/value-flow.d.ts +3 -3
  341. package/dist/queries/value-flow.js +1 -1
  342. package/dist/queries/vue-component-duplicates.d.ts +2 -2
  343. package/dist/queries/vue-component-duplicates.js +1 -1
  344. package/dist/queries/vue-composable-candidates.d.ts +2 -2
  345. package/dist/queries/vue-composable-candidates.js +1 -1
  346. package/dist/queries/vue-large-view-pressure.d.ts +2 -2
  347. package/dist/queries/vue-large-view-pressure.js +1 -1
  348. package/dist/queries/wrapper-candidates.d.ts +2 -2
  349. package/dist/queries/wrapper-candidates.js +1 -1
  350. package/dist/reindex-worker.js +1 -1
  351. package/dist/reindex.d.ts +3 -3
  352. package/dist/reindex.js +31 -31
  353. package/dist/runtime.d.ts +24 -4
  354. package/dist/runtime.js +3 -3
  355. package/dist/rust-semantic-session-server.js +1 -1
  356. package/dist/rust-semantic-session-worker.js +1 -1
  357. package/dist/rust-semantic-worker.js +1 -1
  358. package/dist/{scip-cli-B7N3haxa.d.ts → scip-cli-BRFKkHQn.d.ts} +1 -1
  359. package/dist/sentinel-ensure-command-KYYULCFU.js +2 -0
  360. package/dist/sentinel-ensure-command-RIZA3RY7.js +3 -0
  361. package/dist/sentinel-hook.js +39 -0
  362. package/dist/sentinel-worker.js +16 -0
  363. package/dist/typescript-mailbox-worker.js +1 -1
  364. package/dist/watch-server.js +6 -6
  365. package/docs/COMMAND_REFERENCE.md +5 -3
  366. package/docs/schemas/project-config.schema.json +159 -0
  367. package/package.json +9 -5
  368. package/skills/codebaseiq/SKILL.md +1 -1
  369. package/skills/concrete-plan/SKILL.md +1 -1
  370. package/ui/view/api.js +450 -0
  371. package/ui/view/app.js +394 -0
  372. package/ui/view/builder.js +323 -0
  373. package/ui/view/file-panel.js +170 -0
  374. package/ui/view/focus.js +379 -0
  375. package/ui/view/index.html +54 -0
  376. package/ui/view/map.js +424 -0
  377. package/ui/view/styles.css +1125 -0
  378. package/dist/chunk-2X7V4HS4.js +0 -88
  379. package/dist/chunk-3IER7Q6H.js +0 -12
  380. package/dist/chunk-3JSXXYTZ.js +0 -345
  381. package/dist/chunk-476NR5B7.js +0 -2
  382. package/dist/chunk-5VKBFZZU.js +0 -3
  383. package/dist/chunk-ADTBPVUZ.js +0 -21
  384. package/dist/chunk-BFFZDZQV.js +0 -2
  385. package/dist/chunk-BMYOV5GP.js +0 -77
  386. package/dist/chunk-C74PPYLA.js +0 -3
  387. package/dist/chunk-CWONGW6P.js +0 -3
  388. package/dist/chunk-DDZ7VHWV.js +0 -20
  389. package/dist/chunk-DR2LURYU.js +0 -3
  390. package/dist/chunk-ECQBG7PW.js +0 -564
  391. package/dist/chunk-FM5BPL4V.js +0 -60
  392. package/dist/chunk-G6XFR4ZL.js +0 -4
  393. package/dist/chunk-GTIYTDRE.js +0 -562
  394. package/dist/chunk-HOA5YGOH.js +0 -3
  395. package/dist/chunk-KUW32IRO.js +0 -2
  396. package/dist/chunk-LTA3BRZX.js +0 -2
  397. package/dist/chunk-NAUD7LCA.js +0 -2
  398. package/dist/chunk-OGTFJ3XD.js +0 -2
  399. package/dist/chunk-Q5ELPRKQ.js +0 -2
  400. package/dist/chunk-QCN62RTF.js +0 -3
  401. package/dist/chunk-QW7EP6WI.js +0 -21
  402. package/dist/chunk-RU65DDUP.js +0 -215
  403. package/dist/chunk-SELM5MER.js +0 -2
  404. package/dist/chunk-SNNWPCN7.js +0 -4
  405. package/dist/chunk-TFZB6XTM.js +0 -239
  406. package/dist/chunk-UXM43C7T.js +0 -3
  407. package/dist/chunk-VFY6Y2H6.js +0 -61
  408. package/dist/chunk-WE5RZHZ7.js +0 -5
  409. package/dist/chunk-Z54RD7VL.js +0 -3
  410. package/dist/cli-context-3SNLDYBM.js +0 -3
  411. package/dist/cli-context-T3B7W6GG.js +0 -2
  412. package/dist/cli-program-YNOXO72B.js +0 -7
  413. package/dist/command-descriptors-6AOUKWW7.js +0 -346
  414. package/dist/command-descriptors-ZFKJSRUP.js +0 -344
  415. package/dist/direct-navigation-DP4LVMRX.js +0 -3
  416. package/dist/direct-navigation-FLUS3BT6.js +0 -2
  417. package/dist/invocation-command-descriptors-QT2JMY5J.js +0 -3
  418. package/dist/invocation-command-descriptors-YN4QJEAX.js +0 -2
  419. package/dist/output-continuation-command-2V2SL4TD.js +0 -2
  420. package/dist/output-continuation-command-65J5IP3O.js +0 -3
  421. package/dist/project-reindex-5JOKXAXT.js +0 -2
  422. package/dist/project-reindex-UQBIKO4M.js +0 -3
package/ui/view/app.js ADDED
@@ -0,0 +1,394 @@
1
+ import {
2
+ basename,
3
+ dirname,
4
+ el,
5
+ getFile,
6
+ getMeta,
7
+ getScope,
8
+ getSymbol,
9
+ isAbort,
10
+ normalizeScope,
11
+ notice,
12
+ parseRoute,
13
+ pathPrefixes,
14
+ routeLink,
15
+ routeToSearch,
16
+ watcherTone,
17
+ } from '/assets/api.js';
18
+ import { createBuilder } from '/assets/builder.js';
19
+ import { renderFilePanel, renderScopePanel } from '/assets/file-panel.js';
20
+ import { renderCandidates, renderFocus } from '/assets/focus.js';
21
+ import { createMap } from '/assets/map.js';
22
+
23
+ const POLL_MS = 5000;
24
+ const TOAST_MS = 3500;
25
+ const CRUMB_LABEL_LIMIT = 40;
26
+
27
+ const dom = {
28
+ brand: document.getElementById('project-name'),
29
+ crumbs: document.getElementById('breadcrumbs'),
30
+ basis: [...document.querySelectorAll('[data-basis]')],
31
+ search: document.getElementById('search'),
32
+ searchInput: document.getElementById('search-input'),
33
+ builderButton: document.getElementById('builder-button'),
34
+ builderDrawer: document.getElementById('builder'),
35
+ watcher: document.getElementById('watcher-state'),
36
+ split: document.getElementById('split'),
37
+ map: document.getElementById('map'),
38
+ detail: document.getElementById('detail'),
39
+ toast: document.getElementById('toast'),
40
+ announce: document.getElementById('announce'),
41
+ };
42
+
43
+ const state = {
44
+ meta: null,
45
+ generation: undefined,
46
+ route: parseRoute(location.search),
47
+ scope: null,
48
+ mapKey: null,
49
+ mapPath: '',
50
+ statements: false,
51
+ sequence: 0,
52
+ controller: null,
53
+ loadFailed: false,
54
+ polling: false,
55
+ toastTimer: 0,
56
+ };
57
+
58
+ const nav = {
59
+ href: (route) => routeToSearch(withBasis(route)) || location.pathname,
60
+ go: (route) => navigate(withBasis(route)),
61
+ };
62
+
63
+ const map = createMap(dom.map, {
64
+ onDrill: (path) => nav.go({ scope: path }),
65
+ onFile: (path) => nav.go({ file: path }),
66
+ onExternal: (node) => nav.go(node.isFile ? { file: node.path } : { scope: node.path }),
67
+ });
68
+
69
+ const builder = createBuilder({ drawer: dom.builderDrawer, trigger: dom.builderButton, nav });
70
+
71
+ function withBasis(route) {
72
+ return { basis: state.route.basis, ...route };
73
+ }
74
+
75
+ function projectName() {
76
+ return state.meta?.projectName || 'project';
77
+ }
78
+
79
+ // ── Navigation ────────────────────────────────────────────
80
+
81
+ function navigate(route) {
82
+ const search = routeToSearch(route);
83
+ if (search === routeToSearch(state.route)) return;
84
+ history.pushState(null, '', search || location.pathname);
85
+ void load(route, { userInitiated: true });
86
+ }
87
+
88
+ window.addEventListener('popstate', () => {
89
+ void load(parseRoute(location.search));
90
+ });
91
+
92
+ // ── Chrome: breadcrumbs, title, status ────────────────────
93
+
94
+ function setCrumbs({ scope = '', file = null, label = null }) {
95
+ const items = [{ label: projectName(), route: { scope: '' } }];
96
+ for (const directory of pathPrefixes(file ? dirname(file) : scope)) {
97
+ items.push({ label: directory.name, route: { scope: directory.path } });
98
+ }
99
+ if (file) items.push({ label: basename(file), route: { file } });
100
+ if (label)
101
+ items.push({ label: label.length > CRUMB_LABEL_LIMIT ? `${label.slice(0, CRUMB_LABEL_LIMIT - 1)}…` : label });
102
+ const list = el('ol');
103
+ items.forEach((item, index) => {
104
+ const last = index === items.length - 1;
105
+ list.append(
106
+ el(
107
+ 'li',
108
+ null,
109
+ last || !item.route
110
+ ? el('span', { 'aria-current': last ? 'page' : null }, item.label)
111
+ : routeLink(nav, item.route, item.label),
112
+ ),
113
+ );
114
+ });
115
+ dom.crumbs.replaceChildren(list);
116
+ }
117
+
118
+ function finishView(ctx, { scope = '', file = null, label = null, title, message }) {
119
+ setCrumbs({ scope, file, label });
120
+ dom.split.dataset.view = ctx.view;
121
+ document.title = `${title || projectName()} · ${projectName()}`;
122
+ if (!ctx.quiet) dom.announce.textContent = message;
123
+ }
124
+
125
+ function syncControls(route) {
126
+ for (const button of dom.basis) button.setAttribute('aria-pressed', String(button.dataset.basis === route.basis));
127
+ dom.searchInput.value = route.focus ?? '';
128
+ }
129
+
130
+ function setPill(text, pillState) {
131
+ dom.watcher.textContent = text;
132
+ dom.watcher.dataset.state = pillState;
133
+ }
134
+
135
+ function showToast(message) {
136
+ dom.toast.textContent = message;
137
+ dom.toast.classList.add('visible');
138
+ clearTimeout(state.toastTimer);
139
+ state.toastTimer = setTimeout(() => {
140
+ dom.toast.classList.remove('visible');
141
+ dom.toast.textContent = '';
142
+ }, TOAST_MS);
143
+ }
144
+
145
+ function nearestScopes(value) {
146
+ if (typeof value === 'string') return [value];
147
+ if (Array.isArray(value)) return value.filter((entry) => typeof entry === 'string');
148
+ return typeof value?.path === 'string' ? [value.path] : [];
149
+ }
150
+
151
+ function errorNotice(error) {
152
+ const nearest = nearestScopes(error?.payload?.nearest);
153
+ return notice(
154
+ 'error',
155
+ error?.message ?? 'Something went wrong.',
156
+ nearest.length > 0
157
+ ? [
158
+ ' Nearest: ',
159
+ nearest.map((path, index) => [index > 0 ? ', ' : '', routeLink(nav, { scope: path }, path || projectName())]),
160
+ ]
161
+ : null,
162
+ );
163
+ }
164
+
165
+ // ── Loading ───────────────────────────────────────────────
166
+
167
+ async function attempt(promise) {
168
+ try {
169
+ return { data: await promise };
170
+ } catch (error) {
171
+ if (isAbort(error)) throw error;
172
+ return { error };
173
+ }
174
+ }
175
+
176
+ /** Fetch and draw a scope unless the same one is already on screen. */
177
+ async function ensureMap(path, basis, { signal, refresh }) {
178
+ const key = `${path}\n${basis}`;
179
+ if (!refresh && state.mapKey === key && state.scope) return { scope: state.scope };
180
+ const { data, error } = await attempt(getScope(path, basis, { signal }));
181
+ if (error) {
182
+ state.scope = null;
183
+ state.mapKey = null;
184
+ map.showNotice(errorNotice(error));
185
+ return { error };
186
+ }
187
+ const scope = normalizeScope(data, path);
188
+ state.scope = scope;
189
+ state.mapKey = key;
190
+ state.mapPath = path;
191
+ map.render(scope);
192
+ return { scope };
193
+ }
194
+
195
+ async function loadScope(ctx) {
196
+ const path = ctx.route.scope ?? '';
197
+ ctx.view = 'scope';
198
+ const { scope } = await ensureMap(path, ctx.route.basis, ctx);
199
+ if (ctx.isStale()) return;
200
+ finishView(ctx, { scope: path, title: path || projectName(), message: `Showing ${path || 'the project root'}` });
201
+ map.select(null);
202
+ if (scope) renderScopePanel(dom.detail, scope, nav);
203
+ else dom.detail.replaceChildren(el('p', { class: 'empty pad' }, 'This directory could not be loaded.'));
204
+ }
205
+
206
+ async function loadFile(ctx) {
207
+ const path = ctx.route.file;
208
+ const directory = dirname(path);
209
+ ctx.view = 'file';
210
+ const [mapped, fileResult] = await Promise.all([
211
+ ensureMap(directory, ctx.route.basis, ctx),
212
+ attempt(getFile(path, ctx.route.basis, { signal: ctx.signal })),
213
+ ]);
214
+ if (ctx.isStale()) return;
215
+ finishView(ctx, { scope: directory, file: path, title: basename(path), message: `Showing file ${path}` });
216
+ map.select(mapped.scope ? path : null);
217
+ if (fileResult.error) dom.detail.replaceChildren(errorNotice(fileResult.error));
218
+ else renderFilePanel(dom.detail, fileResult.data, nav);
219
+ }
220
+
221
+ async function loadSymbol(ctx) {
222
+ const { route } = ctx;
223
+ const selector = route.symbol ?? route.focus;
224
+ const query = route.symbol ? { symbol: route.symbol } : { focus: route.focus };
225
+ const result = await attempt(getSymbol({ ...query, statements: state.statements }, { signal: ctx.signal }));
226
+ if (ctx.isStale()) return;
227
+
228
+ if (result.data?.status === 'matched') {
229
+ const { definition } = result.data;
230
+ ctx.view = 'focus';
231
+ const mapped = await ensureMap(dirname(definition.file), route.basis, ctx);
232
+ if (ctx.isStale()) return;
233
+ finishView(ctx, {
234
+ scope: dirname(definition.file),
235
+ file: definition.file,
236
+ label: definition.name,
237
+ title: definition.name,
238
+ message: `Showing symbol ${definition.name}`,
239
+ });
240
+ map.select(mapped.scope ? definition.file : null);
241
+ renderFocus(dom.detail, result.data, nav, {
242
+ statements: state.statements,
243
+ onToggleStatements: (next) => {
244
+ state.statements = next;
245
+ void load(state.route, { keepScroll: true });
246
+ },
247
+ });
248
+ return;
249
+ }
250
+
251
+ ctx.view = 'scope';
252
+ await ensureMap(state.mapPath, route.basis, ctx);
253
+ if (ctx.isStale()) return;
254
+ finishView(ctx, {
255
+ scope: state.mapPath,
256
+ label: `focus: ${selector}`,
257
+ title: selector,
258
+ message:
259
+ result.data?.status === 'ambiguous' ? `${selector} matches several symbols` : `No symbol found for ${selector}`,
260
+ });
261
+ map.select(null);
262
+ if (result.data?.status === 'ambiguous') renderCandidates(dom.detail, result.data, nav, selector);
263
+ else dom.detail.replaceChildren(errorNotice(result.error ?? new Error('The server sent an unexpected response.')));
264
+ }
265
+
266
+ function focusedKey() {
267
+ const active = document.activeElement;
268
+ return dom.detail.contains(active) ? (active.dataset.focusKey ?? null) : null;
269
+ }
270
+
271
+ /**
272
+ * Load a route. `refresh` refetches data already on screen; `keepScroll`
273
+ * leaves the detail scroll position and announcements alone; `userInitiated`
274
+ * moves keyboard focus to the new heading.
275
+ */
276
+ async function load(route, { refresh = false, keepScroll = false, userInitiated = false } = {}) {
277
+ state.controller?.abort();
278
+ const controller = new AbortController();
279
+ state.controller = controller;
280
+ const sequence = ++state.sequence;
281
+ const ctx = {
282
+ route,
283
+ refresh,
284
+ signal: controller.signal,
285
+ quiet: refresh || keepScroll,
286
+ view: 'scope',
287
+ isStale: () => sequence !== state.sequence,
288
+ };
289
+ state.route = route;
290
+ if (!refresh) syncControls(route);
291
+ const scrollTop = keepScroll || refresh ? dom.detail.scrollTop : 0;
292
+ const focusKey = keepScroll || refresh ? focusedKey() : null;
293
+ document.body.dataset.busy = 'true';
294
+ dom.detail.setAttribute('aria-busy', 'true');
295
+ try {
296
+ if (route.symbol || route.focus) await loadSymbol(ctx);
297
+ else if (route.file) await loadFile(ctx);
298
+ else await loadScope(ctx);
299
+ if (ctx.isStale()) return;
300
+ state.loadFailed = false;
301
+ dom.detail.scrollTop = scrollTop;
302
+ if (focusKey)
303
+ dom.detail.querySelector(`[data-focus-key="${CSS.escape(focusKey)}"]`)?.focus({ preventScroll: true });
304
+ else if (userInitiated) dom.detail.querySelector('[tabindex="-1"]')?.focus({ preventScroll: true });
305
+ } catch (error) {
306
+ if (isAbort(error) || ctx.isStale()) return;
307
+ state.loadFailed = true;
308
+ dom.detail.replaceChildren(errorNotice(error));
309
+ } finally {
310
+ if (!ctx.isStale()) {
311
+ delete document.body.dataset.busy;
312
+ dom.detail.removeAttribute('aria-busy');
313
+ }
314
+ }
315
+ }
316
+
317
+ // ── Meta and polling ──────────────────────────────────────
318
+
319
+ function applyMeta(meta) {
320
+ const changed = state.generation !== undefined && (meta.generation ?? null) !== state.generation;
321
+ state.meta = meta;
322
+ state.generation = meta.generation ?? null;
323
+ dom.brand.textContent = meta.projectName || 'codebaseiq';
324
+ dom.brand.title = meta.cliVersion ? `codebaseiq ${meta.cliVersion}` : 'codebaseiq';
325
+ const watcher = meta.watcher?.state || 'unknown';
326
+ setPill(`Watcher ${watcher}`, watcherTone(watcher));
327
+ builder.configure(meta.builder);
328
+ return changed;
329
+ }
330
+
331
+ async function poll() {
332
+ if (document.visibilityState !== 'visible' || state.polling) return;
333
+ state.polling = true;
334
+ try {
335
+ const wasFailed = state.loadFailed;
336
+ const changed = applyMeta(await getMeta());
337
+ if (changed) {
338
+ showToast('Index updated');
339
+ await load(state.route, { refresh: true });
340
+ } else if (wasFailed) {
341
+ await load(state.route, { refresh: true });
342
+ }
343
+ } catch (error) {
344
+ if (!isAbort(error)) setPill('Server unreachable', 'offline');
345
+ } finally {
346
+ state.polling = false;
347
+ }
348
+ }
349
+
350
+ // ── Controls ──────────────────────────────────────────────
351
+
352
+ function isTyping(target) {
353
+ return (
354
+ target instanceof HTMLElement && (target.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(target.tagName))
355
+ );
356
+ }
357
+
358
+ function wireControls() {
359
+ for (const button of dom.basis) {
360
+ button.addEventListener('click', () => navigate({ ...state.route, basis: button.dataset.basis }));
361
+ }
362
+ dom.search.addEventListener('submit', (event) => {
363
+ event.preventDefault();
364
+ const selector = dom.searchInput.value.trim();
365
+ if (selector) nav.go({ focus: selector });
366
+ });
367
+ dom.brand.addEventListener('click', (event) => {
368
+ if (event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey) return;
369
+ event.preventDefault();
370
+ nav.go({});
371
+ });
372
+ document.addEventListener('keydown', (event) => {
373
+ if (event.key !== '/' || event.metaKey || event.ctrlKey || event.altKey || isTyping(event.target)) return;
374
+ event.preventDefault();
375
+ dom.searchInput.focus();
376
+ dom.searchInput.select();
377
+ });
378
+ document.addEventListener('visibilitychange', () => {
379
+ if (document.visibilityState === 'visible') void poll();
380
+ });
381
+ setInterval(() => void poll(), POLL_MS);
382
+ }
383
+
384
+ async function boot() {
385
+ wireControls();
386
+ try {
387
+ applyMeta(await getMeta());
388
+ } catch {
389
+ setPill('Server unreachable', 'offline');
390
+ }
391
+ await load(state.route);
392
+ }
393
+
394
+ void boot();