@zythum02/fello-server 0.1.39 → 0.1.45

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 (294) hide show
  1. package/README.md +10 -2
  2. package/out/renderer/assets/{_baseUniq-BonfEMiF.js → _baseUniq-B2L-gQdU.js} +1 -1
  3. package/out/renderer/assets/_baseUniq-B2L-gQdU.js.br +0 -0
  4. package/out/renderer/assets/_baseUniq-B2L-gQdU.js.gz +0 -0
  5. package/out/renderer/assets/{arc-Do8LbeMR.js → arc-Dh0s2UpX.js} +1 -1
  6. package/out/renderer/assets/arc-Dh0s2UpX.js.br +0 -0
  7. package/out/renderer/assets/arc-Dh0s2UpX.js.gz +0 -0
  8. package/out/renderer/assets/{architectureDiagram-Q4EWVU46-B8pyh3AH.js → architectureDiagram-Q4EWVU46-CQ2ioqAL.js} +5 -5
  9. package/out/renderer/assets/architectureDiagram-Q4EWVU46-CQ2ioqAL.js.br +0 -0
  10. package/out/renderer/assets/architectureDiagram-Q4EWVU46-CQ2ioqAL.js.gz +0 -0
  11. package/out/renderer/assets/{blockDiagram-DXYQGD6D-DxehDaBQ.js → blockDiagram-DXYQGD6D-Wh0G1xzO.js} +6 -6
  12. package/out/renderer/assets/blockDiagram-DXYQGD6D-Wh0G1xzO.js.br +0 -0
  13. package/out/renderer/assets/blockDiagram-DXYQGD6D-Wh0G1xzO.js.gz +0 -0
  14. package/out/renderer/assets/{c4Diagram-AHTNJAMY-BwVB2HtH.js → c4Diagram-AHTNJAMY-BYn4M8r3.js} +2 -2
  15. package/out/renderer/assets/c4Diagram-AHTNJAMY-BYn4M8r3.js.br +0 -0
  16. package/out/renderer/assets/{c4Diagram-AHTNJAMY-BwVB2HtH.js.gz → c4Diagram-AHTNJAMY-BYn4M8r3.js.gz} +0 -0
  17. package/out/renderer/assets/{channel-DoK5PQCo.js → channel-BbsS770v.js} +1 -1
  18. package/out/renderer/assets/{chunk-4BX2VUAB-B5UbKm2i.js → chunk-4BX2VUAB-BqmuvYx4.js} +1 -1
  19. package/out/renderer/assets/{chunk-4TB4RGXK-Mp3JyPop.js → chunk-4TB4RGXK-CGWvo0MB.js} +5 -5
  20. package/out/renderer/assets/chunk-4TB4RGXK-CGWvo0MB.js.br +0 -0
  21. package/out/renderer/assets/chunk-4TB4RGXK-CGWvo0MB.js.gz +0 -0
  22. package/out/renderer/assets/{chunk-55IACEB6-BpQS-lsN.js → chunk-55IACEB6-B2F_rVhp.js} +1 -1
  23. package/out/renderer/assets/{chunk-EDXVE4YY-BQEQxqzJ.js → chunk-EDXVE4YY-rv_Sxmdr.js} +1 -1
  24. package/out/renderer/assets/chunk-EDXVE4YY-rv_Sxmdr.js.br +0 -0
  25. package/out/renderer/assets/chunk-EDXVE4YY-rv_Sxmdr.js.gz +0 -0
  26. package/out/renderer/assets/{chunk-FMBD7UC4-dCqprN1e.js → chunk-FMBD7UC4-B5pWdaON.js} +1 -1
  27. package/out/renderer/assets/{chunk-OYMX7WX6-D19mZGkc.js → chunk-OYMX7WX6-CK7U7B55.js} +3 -3
  28. package/out/renderer/assets/chunk-OYMX7WX6-CK7U7B55.js.br +0 -0
  29. package/out/renderer/assets/chunk-OYMX7WX6-CK7U7B55.js.gz +0 -0
  30. package/out/renderer/assets/{chunk-QZHKN3VN-DzWTtEnO.js → chunk-QZHKN3VN-CEGxn157.js} +1 -1
  31. package/out/renderer/assets/{chunk-YZCP3GAM-BEBfdXkA.js → chunk-YZCP3GAM-CP9VxQ_4.js} +1 -1
  32. package/out/renderer/assets/chunk-YZCP3GAM-CP9VxQ_4.js.br +0 -0
  33. package/out/renderer/assets/chunk-YZCP3GAM-CP9VxQ_4.js.gz +0 -0
  34. package/out/renderer/assets/{classDiagram-6PBFFD2Q-BosKSo4l.js → classDiagram-6PBFFD2Q-DDq47uie.js} +6 -6
  35. package/out/renderer/assets/{classDiagram-v2-HSJHXN6E-BosKSo4l.js → classDiagram-v2-HSJHXN6E-DDq47uie.js} +6 -6
  36. package/out/renderer/assets/{clone-C281XDWZ.js → clone-D_yz9tHs.js} +1 -1
  37. package/out/renderer/assets/{cose-bilkent-S5V4N54A-6SeriN8Z.js → cose-bilkent-S5V4N54A-4f3CSmy0.js} +1 -1
  38. package/out/renderer/assets/cose-bilkent-S5V4N54A-4f3CSmy0.js.br +0 -0
  39. package/out/renderer/assets/cose-bilkent-S5V4N54A-4f3CSmy0.js.gz +0 -0
  40. package/out/renderer/assets/{dagre-KV5264BT-gXq994RD.js → dagre-KV5264BT-CUE2rJbD.js} +6 -6
  41. package/out/renderer/assets/dagre-KV5264BT-CUE2rJbD.js.br +0 -0
  42. package/out/renderer/assets/dagre-KV5264BT-CUE2rJbD.js.gz +0 -0
  43. package/out/renderer/assets/{diagram-5BDNPKRD-GOebOMWt.js → diagram-5BDNPKRD-pp0PcxKz.js} +6 -6
  44. package/out/renderer/assets/diagram-5BDNPKRD-pp0PcxKz.js.br +0 -0
  45. package/out/renderer/assets/diagram-5BDNPKRD-pp0PcxKz.js.gz +0 -0
  46. package/out/renderer/assets/{diagram-G4DWMVQ6-BkQmAuCz.js → diagram-G4DWMVQ6-C-riu5J4.js} +6 -6
  47. package/out/renderer/assets/diagram-G4DWMVQ6-C-riu5J4.js.br +0 -0
  48. package/out/renderer/assets/diagram-G4DWMVQ6-C-riu5J4.js.gz +0 -0
  49. package/out/renderer/assets/{diagram-MMDJMWI5-Q9B0Tkq3.js → diagram-MMDJMWI5-qa5mZzds.js} +5 -5
  50. package/out/renderer/assets/diagram-MMDJMWI5-qa5mZzds.js.br +0 -0
  51. package/out/renderer/assets/diagram-MMDJMWI5-qa5mZzds.js.gz +0 -0
  52. package/out/renderer/assets/{diagram-TYMM5635-5wNVFKxe.js → diagram-TYMM5635-BJb8gvcB.js} +5 -5
  53. package/out/renderer/assets/diagram-TYMM5635-BJb8gvcB.js.br +0 -0
  54. package/out/renderer/assets/diagram-TYMM5635-BJb8gvcB.js.gz +0 -0
  55. package/out/renderer/assets/docx_parser_bg-B5rV91hd.wasm +0 -0
  56. package/out/renderer/assets/{erDiagram-SMLLAGMA-DRxQnVgW.js → erDiagram-SMLLAGMA-BImpezHs.js} +4 -4
  57. package/out/renderer/assets/erDiagram-SMLLAGMA-BImpezHs.js.br +0 -0
  58. package/out/renderer/assets/erDiagram-SMLLAGMA-BImpezHs.js.gz +0 -0
  59. package/out/renderer/assets/{flowDiagram-DWJPFMVM-3uIpRmli.js → flowDiagram-DWJPFMVM-BGPw25aw.js} +6 -6
  60. package/out/renderer/assets/flowDiagram-DWJPFMVM-BGPw25aw.js.br +0 -0
  61. package/out/renderer/assets/flowDiagram-DWJPFMVM-BGPw25aw.js.gz +0 -0
  62. package/out/renderer/assets/{ganttDiagram-T4ZO3ILL-CFxauQFp.js → ganttDiagram-T4ZO3ILL-DcKLeP7M.js} +2 -2
  63. package/out/renderer/assets/ganttDiagram-T4ZO3ILL-DcKLeP7M.js.br +0 -0
  64. package/out/renderer/assets/ganttDiagram-T4ZO3ILL-DcKLeP7M.js.gz +0 -0
  65. package/out/renderer/assets/{gitGraphDiagram-UUTBAWPF-CDBCF75U.js → gitGraphDiagram-UUTBAWPF-BQE3VROE.js} +6 -6
  66. package/out/renderer/assets/gitGraphDiagram-UUTBAWPF-BQE3VROE.js.br +0 -0
  67. package/out/renderer/assets/gitGraphDiagram-UUTBAWPF-BQE3VROE.js.gz +0 -0
  68. package/out/renderer/assets/{graph-B77t0Iut.js → graph-BpsL6VlK.js} +2 -2
  69. package/out/renderer/assets/graph-BpsL6VlK.js.br +0 -0
  70. package/out/renderer/assets/graph-BpsL6VlK.js.gz +0 -0
  71. package/out/renderer/assets/{highlighted-body-OFNGDK62-BOhs9DFu.js → highlighted-body-OFNGDK62-BKJZddky.js} +1 -1
  72. package/out/renderer/assets/index-C-1Mla-o.css +6729 -0
  73. package/out/renderer/assets/index-C-1Mla-o.css.br +0 -0
  74. package/out/renderer/assets/index-C-1Mla-o.css.gz +0 -0
  75. package/out/renderer/assets/{index-l_WeGi7a.js → index-Dd5g6jOl.js} +67828 -26949
  76. package/out/renderer/assets/index-Dd5g6jOl.js.br +0 -0
  77. package/out/renderer/assets/index-Dd5g6jOl.js.gz +0 -0
  78. package/out/renderer/assets/{infoDiagram-42DDH7IO-C3TJqapp.js → infoDiagram-42DDH7IO-BfDiSuRt.js} +4 -4
  79. package/out/renderer/assets/{ishikawaDiagram-UXIWVN3A-C59I-VqG.js → ishikawaDiagram-UXIWVN3A-D3NlGVXH.js} +1 -1
  80. package/out/renderer/assets/ishikawaDiagram-UXIWVN3A-D3NlGVXH.js.br +0 -0
  81. package/out/renderer/assets/ishikawaDiagram-UXIWVN3A-D3NlGVXH.js.gz +0 -0
  82. package/out/renderer/assets/{journeyDiagram-VCZTEJTY-B6jawzfM.js → journeyDiagram-VCZTEJTY-DqeLAWW-.js} +4 -4
  83. package/out/renderer/assets/journeyDiagram-VCZTEJTY-DqeLAWW-.js.br +0 -0
  84. package/out/renderer/assets/journeyDiagram-VCZTEJTY-DqeLAWW-.js.gz +0 -0
  85. package/out/renderer/assets/{kanban-definition-6JOO6SKY-BCXhVxbs.js → kanban-definition-6JOO6SKY-C25BBRvk.js} +2 -2
  86. package/out/renderer/assets/kanban-definition-6JOO6SKY-C25BBRvk.js.br +0 -0
  87. package/out/renderer/assets/{kanban-definition-6JOO6SKY-BCXhVxbs.js.gz → kanban-definition-6JOO6SKY-C25BBRvk.js.gz} +0 -0
  88. package/out/renderer/assets/{layout-zx9noErc.js → layout-DtW-aq94.js} +4 -4
  89. package/out/renderer/assets/layout-DtW-aq94.js.br +0 -0
  90. package/out/renderer/assets/layout-DtW-aq94.js.gz +0 -0
  91. package/out/renderer/assets/{linear-Bo25ELwI.js → linear-rNBYTEYz.js} +1 -1
  92. package/out/renderer/assets/linear-rNBYTEYz.js.br +0 -0
  93. package/out/renderer/assets/linear-rNBYTEYz.js.gz +0 -0
  94. package/out/renderer/assets/mathjax-stix2-M8xawHNZ.js +15 -0
  95. package/out/renderer/assets/mathjax-stix2-M8xawHNZ.js.br +0 -0
  96. package/out/renderer/assets/mathjax-stix2-M8xawHNZ.js.gz +0 -0
  97. package/out/renderer/assets/{min-eGRLXD6u.js → min-MG_Ci7_B.js} +2 -2
  98. package/out/renderer/assets/min-MG_Ci7_B.js.br +0 -0
  99. package/out/renderer/assets/min-MG_Ci7_B.js.gz +0 -0
  100. package/out/renderer/assets/{mindmap-definition-QFDTVHPH-PUpW_gKO.js → mindmap-definition-QFDTVHPH-C67ROQav.js} +3 -3
  101. package/out/renderer/assets/mindmap-definition-QFDTVHPH-C67ROQav.js.br +0 -0
  102. package/out/renderer/assets/mindmap-definition-QFDTVHPH-C67ROQav.js.gz +0 -0
  103. package/out/renderer/assets/{pdf-worker-wrapper-Do-ikGHl.js → pdf-worker-wrapper-D9W0fDhT.js} +6514 -5934
  104. package/out/renderer/assets/pdf-worker-wrapper-D9W0fDhT.js.br +0 -0
  105. package/out/renderer/assets/pdf-worker-wrapper-D9W0fDhT.js.gz +0 -0
  106. package/out/renderer/assets/{pieDiagram-DEJITSTG-BrSaX9YD.js → pieDiagram-DEJITSTG-DE1aBCQW.js} +6 -6
  107. package/out/renderer/assets/pieDiagram-DEJITSTG-DE1aBCQW.js.br +0 -0
  108. package/out/renderer/assets/pieDiagram-DEJITSTG-DE1aBCQW.js.gz +0 -0
  109. package/out/renderer/assets/pierre-dark-BL-l9r39.js +4 -0
  110. package/out/renderer/assets/pierre-dark-BL-l9r39.js.br +0 -0
  111. package/out/renderer/assets/pierre-dark-BL-l9r39.js.gz +0 -0
  112. package/out/renderer/assets/pierre-dark-protanopia-deuteranopia-BBjGuJQU.js +4 -0
  113. package/out/renderer/assets/pierre-dark-protanopia-deuteranopia-BBjGuJQU.js.br +0 -0
  114. package/out/renderer/assets/pierre-dark-protanopia-deuteranopia-BBjGuJQU.js.gz +0 -0
  115. package/out/renderer/assets/pierre-dark-soft-B6TBhICr.js +4 -0
  116. package/out/renderer/assets/pierre-dark-soft-B6TBhICr.js.br +0 -0
  117. package/out/renderer/assets/pierre-dark-soft-B6TBhICr.js.gz +0 -0
  118. package/out/renderer/assets/pierre-dark-tritanopia-f-j_EX9A.js +4 -0
  119. package/out/renderer/assets/pierre-dark-tritanopia-f-j_EX9A.js.br +0 -0
  120. package/out/renderer/assets/pierre-dark-tritanopia-f-j_EX9A.js.gz +0 -0
  121. package/out/renderer/assets/pierre-dark-vibrant-yElMGqZN.js +4 -0
  122. package/out/renderer/assets/pierre-dark-vibrant-yElMGqZN.js.br +0 -0
  123. package/out/renderer/assets/pierre-dark-vibrant-yElMGqZN.js.gz +0 -0
  124. package/out/renderer/assets/pierre-light-BUzWTcjO.js +4 -0
  125. package/out/renderer/assets/pierre-light-BUzWTcjO.js.br +0 -0
  126. package/out/renderer/assets/pierre-light-BUzWTcjO.js.gz +0 -0
  127. package/out/renderer/assets/pierre-light-protanopia-deuteranopia-DlvVSCaI.js +4 -0
  128. package/out/renderer/assets/pierre-light-protanopia-deuteranopia-DlvVSCaI.js.br +0 -0
  129. package/out/renderer/assets/pierre-light-protanopia-deuteranopia-DlvVSCaI.js.gz +0 -0
  130. package/out/renderer/assets/pierre-light-soft-CCMU-Zh0.js +4 -0
  131. package/out/renderer/assets/pierre-light-soft-CCMU-Zh0.js.br +0 -0
  132. package/out/renderer/assets/pierre-light-soft-CCMU-Zh0.js.gz +0 -0
  133. package/out/renderer/assets/pierre-light-tritanopia-v4xacE1C.js +4 -0
  134. package/out/renderer/assets/pierre-light-tritanopia-v4xacE1C.js.br +0 -0
  135. package/out/renderer/assets/pierre-light-tritanopia-v4xacE1C.js.gz +0 -0
  136. package/out/renderer/assets/pierre-light-vibrant-BRUbQnMc.js +4 -0
  137. package/out/renderer/assets/pierre-light-vibrant-BRUbQnMc.js.br +0 -0
  138. package/out/renderer/assets/pierre-light-vibrant-BRUbQnMc.js.gz +0 -0
  139. package/out/renderer/assets/pptx_parser_bg-C6x8HRdb.wasm +0 -0
  140. package/out/renderer/assets/{quadrantDiagram-34T5L4WZ-B_oUGzKN.js → quadrantDiagram-34T5L4WZ-B5mGDuN5.js} +2 -2
  141. package/out/renderer/assets/quadrantDiagram-34T5L4WZ-B5mGDuN5.js.br +0 -0
  142. package/out/renderer/assets/quadrantDiagram-34T5L4WZ-B5mGDuN5.js.gz +0 -0
  143. package/out/renderer/assets/render-worker-host-B-Y1DmN9-CMFsEp7s.js +25 -0
  144. package/out/renderer/assets/render-worker-host-B-Y1DmN9-CMFsEp7s.js.br +0 -0
  145. package/out/renderer/assets/render-worker-host-B-Y1DmN9-CMFsEp7s.js.gz +0 -0
  146. package/out/renderer/assets/render-worker-host-B5otq5TA-D0PN4GJN.js +25 -0
  147. package/out/renderer/assets/render-worker-host-B5otq5TA-D0PN4GJN.js.br +0 -0
  148. package/out/renderer/assets/render-worker-host-B5otq5TA-D0PN4GJN.js.gz +0 -0
  149. package/out/renderer/assets/render-worker-host-GGVmi0tj-BJOvCVyx.js +25 -0
  150. package/out/renderer/assets/render-worker-host-GGVmi0tj-BJOvCVyx.js.br +0 -0
  151. package/out/renderer/assets/render-worker-host-GGVmi0tj-BJOvCVyx.js.gz +0 -0
  152. package/out/renderer/assets/{requirementDiagram-MS252O5E-LQY3T05J.js → requirementDiagram-MS252O5E-CiGX4Xpv.js} +3 -3
  153. package/out/renderer/assets/requirementDiagram-MS252O5E-CiGX4Xpv.js.br +0 -0
  154. package/out/renderer/assets/requirementDiagram-MS252O5E-CiGX4Xpv.js.gz +0 -0
  155. package/out/renderer/assets/{sankeyDiagram-XADWPNL6-BZrdYvkl.js → sankeyDiagram-XADWPNL6-BPM4lpDs.js} +1 -1
  156. package/out/renderer/assets/sankeyDiagram-XADWPNL6-BPM4lpDs.js.br +0 -0
  157. package/out/renderer/assets/sankeyDiagram-XADWPNL6-BPM4lpDs.js.gz +0 -0
  158. package/out/renderer/assets/{sequenceDiagram-FGHM5R23-DT03DGl3.js → sequenceDiagram-FGHM5R23-D1Ok0mDp.js} +3 -3
  159. package/out/renderer/assets/sequenceDiagram-FGHM5R23-D1Ok0mDp.js.br +0 -0
  160. package/out/renderer/assets/sequenceDiagram-FGHM5R23-D1Ok0mDp.js.gz +0 -0
  161. package/out/renderer/assets/{stateDiagram-FHFEXIEX-XxvRQ2fw.js → stateDiagram-FHFEXIEX-C0DqB63K.js} +8 -8
  162. package/out/renderer/assets/stateDiagram-FHFEXIEX-C0DqB63K.js.br +0 -0
  163. package/out/renderer/assets/stateDiagram-FHFEXIEX-C0DqB63K.js.gz +0 -0
  164. package/out/renderer/assets/{stateDiagram-v2-QKLJ7IA2-C8lZQVxS.js → stateDiagram-v2-QKLJ7IA2-CcTyZcy9.js} +4 -4
  165. package/out/renderer/assets/{timeline-definition-GMOUNBTQ-BThN9RD2.js → timeline-definition-GMOUNBTQ-CY70j9aj.js} +2 -2
  166. package/out/renderer/assets/timeline-definition-GMOUNBTQ-CY70j9aj.js.br +0 -0
  167. package/out/renderer/assets/timeline-definition-GMOUNBTQ-CY70j9aj.js.gz +0 -0
  168. package/out/renderer/assets/{vennDiagram-DHZGUBPP-DvL9CApP.js → vennDiagram-DHZGUBPP-DpZP-SME.js} +1 -1
  169. package/out/renderer/assets/vennDiagram-DHZGUBPP-DpZP-SME.js.br +0 -0
  170. package/out/renderer/assets/vennDiagram-DHZGUBPP-DpZP-SME.js.gz +0 -0
  171. package/out/renderer/assets/{wardley-RL74JXVD-B4vPxA-A.js → wardley-RL74JXVD-DUTOcssT.js} +3 -3
  172. package/out/renderer/assets/wardley-RL74JXVD-DUTOcssT.js.br +0 -0
  173. package/out/renderer/assets/{wardley-RL74JXVD-B4vPxA-A.js.gz → wardley-RL74JXVD-DUTOcssT.js.gz} +0 -0
  174. package/out/renderer/assets/{wardleyDiagram-NUSXRM2D-A3F8zuNA.js → wardleyDiagram-NUSXRM2D-ZVKE_8YQ.js} +5 -5
  175. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-ZVKE_8YQ.js.br +0 -0
  176. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-ZVKE_8YQ.js.gz +0 -0
  177. package/out/renderer/assets/xlsx_parser_bg-ByWgODYl.wasm +0 -0
  178. package/out/renderer/assets/{xychartDiagram-5P7HB3ND-BxjT7l5Q.js → xychartDiagram-5P7HB3ND-B8kViTNI.js} +2 -2
  179. package/out/renderer/assets/xychartDiagram-5P7HB3ND-B8kViTNI.js.br +0 -0
  180. package/out/renderer/assets/xychartDiagram-5P7HB3ND-B8kViTNI.js.gz +0 -0
  181. package/out/renderer/index.html +2 -2
  182. package/out/renderer/index.html.br +0 -0
  183. package/out/renderer/index.html.gz +0 -0
  184. package/out/scripts/electron-preload/preload.mjs +21 -0
  185. package/out/scripts/mcp-image-generation/server.mjs +140 -0
  186. package/out/scripts/mcp-memo/server.mjs +268 -0
  187. package/out/scripts/mcp-memory/server.mjs +183 -0
  188. package/out/scripts/mcp-search/server.mjs +1 -1
  189. package/out/scripts/mcp-toolbox/server.mjs +482 -0
  190. package/out/scripts/worker-file-outline/worker.mjs +242 -28
  191. package/out/server/main.js +3548 -1332
  192. package/package.json +16 -13
  193. package/resources/tree-sitter-wasm/tree-sitter-dart.wasm +0 -0
  194. package/out/renderer/assets/_baseUniq-BonfEMiF.js.br +0 -0
  195. package/out/renderer/assets/_baseUniq-BonfEMiF.js.gz +0 -0
  196. package/out/renderer/assets/arc-Do8LbeMR.js.br +0 -0
  197. package/out/renderer/assets/arc-Do8LbeMR.js.gz +0 -0
  198. package/out/renderer/assets/architectureDiagram-Q4EWVU46-B8pyh3AH.js.br +0 -0
  199. package/out/renderer/assets/architectureDiagram-Q4EWVU46-B8pyh3AH.js.gz +0 -0
  200. package/out/renderer/assets/blockDiagram-DXYQGD6D-DxehDaBQ.js.br +0 -0
  201. package/out/renderer/assets/blockDiagram-DXYQGD6D-DxehDaBQ.js.gz +0 -0
  202. package/out/renderer/assets/c4Diagram-AHTNJAMY-BwVB2HtH.js.br +0 -0
  203. package/out/renderer/assets/chunk-4TB4RGXK-Mp3JyPop.js.br +0 -0
  204. package/out/renderer/assets/chunk-4TB4RGXK-Mp3JyPop.js.gz +0 -0
  205. package/out/renderer/assets/chunk-EDXVE4YY-BQEQxqzJ.js.br +0 -0
  206. package/out/renderer/assets/chunk-EDXVE4YY-BQEQxqzJ.js.gz +0 -0
  207. package/out/renderer/assets/chunk-OYMX7WX6-D19mZGkc.js.br +0 -0
  208. package/out/renderer/assets/chunk-OYMX7WX6-D19mZGkc.js.gz +0 -0
  209. package/out/renderer/assets/chunk-YZCP3GAM-BEBfdXkA.js.br +0 -0
  210. package/out/renderer/assets/chunk-YZCP3GAM-BEBfdXkA.js.gz +0 -0
  211. package/out/renderer/assets/cose-bilkent-S5V4N54A-6SeriN8Z.js.br +0 -0
  212. package/out/renderer/assets/cose-bilkent-S5V4N54A-6SeriN8Z.js.gz +0 -0
  213. package/out/renderer/assets/dagre-KV5264BT-gXq994RD.js.br +0 -0
  214. package/out/renderer/assets/dagre-KV5264BT-gXq994RD.js.gz +0 -0
  215. package/out/renderer/assets/diagram-5BDNPKRD-GOebOMWt.js.br +0 -0
  216. package/out/renderer/assets/diagram-5BDNPKRD-GOebOMWt.js.gz +0 -0
  217. package/out/renderer/assets/diagram-G4DWMVQ6-BkQmAuCz.js.br +0 -0
  218. package/out/renderer/assets/diagram-G4DWMVQ6-BkQmAuCz.js.gz +0 -0
  219. package/out/renderer/assets/diagram-MMDJMWI5-Q9B0Tkq3.js.br +0 -0
  220. package/out/renderer/assets/diagram-MMDJMWI5-Q9B0Tkq3.js.gz +0 -0
  221. package/out/renderer/assets/diagram-TYMM5635-5wNVFKxe.js.br +0 -0
  222. package/out/renderer/assets/diagram-TYMM5635-5wNVFKxe.js.gz +0 -0
  223. package/out/renderer/assets/erDiagram-SMLLAGMA-DRxQnVgW.js.br +0 -0
  224. package/out/renderer/assets/erDiagram-SMLLAGMA-DRxQnVgW.js.gz +0 -0
  225. package/out/renderer/assets/flowDiagram-DWJPFMVM-3uIpRmli.js.br +0 -0
  226. package/out/renderer/assets/flowDiagram-DWJPFMVM-3uIpRmli.js.gz +0 -0
  227. package/out/renderer/assets/ganttDiagram-T4ZO3ILL-CFxauQFp.js.br +0 -0
  228. package/out/renderer/assets/ganttDiagram-T4ZO3ILL-CFxauQFp.js.gz +0 -0
  229. package/out/renderer/assets/gitGraphDiagram-UUTBAWPF-CDBCF75U.js.br +0 -0
  230. package/out/renderer/assets/gitGraphDiagram-UUTBAWPF-CDBCF75U.js.gz +0 -0
  231. package/out/renderer/assets/graph-B77t0Iut.js.br +0 -0
  232. package/out/renderer/assets/graph-B77t0Iut.js.gz +0 -0
  233. package/out/renderer/assets/index-CTSkyk5N.css +0 -7619
  234. package/out/renderer/assets/index-CTSkyk5N.css.br +0 -0
  235. package/out/renderer/assets/index-CTSkyk5N.css.gz +0 -0
  236. package/out/renderer/assets/index-l_WeGi7a.js.br +0 -0
  237. package/out/renderer/assets/index-l_WeGi7a.js.gz +0 -0
  238. package/out/renderer/assets/ishikawaDiagram-UXIWVN3A-C59I-VqG.js.br +0 -0
  239. package/out/renderer/assets/ishikawaDiagram-UXIWVN3A-C59I-VqG.js.gz +0 -0
  240. package/out/renderer/assets/journeyDiagram-VCZTEJTY-B6jawzfM.js.br +0 -0
  241. package/out/renderer/assets/journeyDiagram-VCZTEJTY-B6jawzfM.js.gz +0 -0
  242. package/out/renderer/assets/kanban-definition-6JOO6SKY-BCXhVxbs.js.br +0 -0
  243. package/out/renderer/assets/layout-zx9noErc.js.br +0 -0
  244. package/out/renderer/assets/layout-zx9noErc.js.gz +0 -0
  245. package/out/renderer/assets/linear-Bo25ELwI.js.br +0 -0
  246. package/out/renderer/assets/linear-Bo25ELwI.js.gz +0 -0
  247. package/out/renderer/assets/min-eGRLXD6u.js.br +0 -0
  248. package/out/renderer/assets/min-eGRLXD6u.js.gz +0 -0
  249. package/out/renderer/assets/mindmap-definition-QFDTVHPH-PUpW_gKO.js.br +0 -0
  250. package/out/renderer/assets/mindmap-definition-QFDTVHPH-PUpW_gKO.js.gz +0 -0
  251. package/out/renderer/assets/pdf-worker-wrapper-Do-ikGHl.js.br +0 -0
  252. package/out/renderer/assets/pdf-worker-wrapper-Do-ikGHl.js.gz +0 -0
  253. package/out/renderer/assets/pieDiagram-DEJITSTG-BrSaX9YD.js.br +0 -0
  254. package/out/renderer/assets/pieDiagram-DEJITSTG-BrSaX9YD.js.gz +0 -0
  255. package/out/renderer/assets/pierre-dark-C-Drv5KU.js +0 -4
  256. package/out/renderer/assets/pierre-dark-C-Drv5KU.js.br +0 -0
  257. package/out/renderer/assets/pierre-dark-C-Drv5KU.js.gz +0 -0
  258. package/out/renderer/assets/pierre-dark-soft-Cd74uQaL.js +0 -4
  259. package/out/renderer/assets/pierre-dark-soft-Cd74uQaL.js.br +0 -0
  260. package/out/renderer/assets/pierre-dark-soft-Cd74uQaL.js.gz +0 -0
  261. package/out/renderer/assets/pierre-light-CfQnmt6J.js +0 -4
  262. package/out/renderer/assets/pierre-light-CfQnmt6J.js.br +0 -0
  263. package/out/renderer/assets/pierre-light-CfQnmt6J.js.gz +0 -0
  264. package/out/renderer/assets/pierre-light-soft-DMVdU74b.js +0 -4
  265. package/out/renderer/assets/pierre-light-soft-DMVdU74b.js.br +0 -0
  266. package/out/renderer/assets/pierre-light-soft-DMVdU74b.js.gz +0 -0
  267. package/out/renderer/assets/quadrantDiagram-34T5L4WZ-B_oUGzKN.js.br +0 -0
  268. package/out/renderer/assets/quadrantDiagram-34T5L4WZ-B_oUGzKN.js.gz +0 -0
  269. package/out/renderer/assets/render-worker-host-4IbvpiUo-Dc5a8nQ-.js +0 -25
  270. package/out/renderer/assets/render-worker-host-4IbvpiUo-Dc5a8nQ-.js.br +0 -0
  271. package/out/renderer/assets/render-worker-host-4IbvpiUo-Dc5a8nQ-.js.gz +0 -0
  272. package/out/renderer/assets/render-worker-host-BdfGz_ou-AC9asZT1.js +0 -25
  273. package/out/renderer/assets/render-worker-host-BdfGz_ou-AC9asZT1.js.br +0 -0
  274. package/out/renderer/assets/render-worker-host-BdfGz_ou-AC9asZT1.js.gz +0 -0
  275. package/out/renderer/assets/render-worker-host-awn_IPjt-Bowndb19.js +0 -25
  276. package/out/renderer/assets/render-worker-host-awn_IPjt-Bowndb19.js.br +0 -0
  277. package/out/renderer/assets/render-worker-host-awn_IPjt-Bowndb19.js.gz +0 -0
  278. package/out/renderer/assets/requirementDiagram-MS252O5E-LQY3T05J.js.br +0 -0
  279. package/out/renderer/assets/requirementDiagram-MS252O5E-LQY3T05J.js.gz +0 -0
  280. package/out/renderer/assets/sankeyDiagram-XADWPNL6-BZrdYvkl.js.br +0 -0
  281. package/out/renderer/assets/sankeyDiagram-XADWPNL6-BZrdYvkl.js.gz +0 -0
  282. package/out/renderer/assets/sequenceDiagram-FGHM5R23-DT03DGl3.js.br +0 -0
  283. package/out/renderer/assets/sequenceDiagram-FGHM5R23-DT03DGl3.js.gz +0 -0
  284. package/out/renderer/assets/stateDiagram-FHFEXIEX-XxvRQ2fw.js.br +0 -0
  285. package/out/renderer/assets/stateDiagram-FHFEXIEX-XxvRQ2fw.js.gz +0 -0
  286. package/out/renderer/assets/timeline-definition-GMOUNBTQ-BThN9RD2.js.br +0 -0
  287. package/out/renderer/assets/timeline-definition-GMOUNBTQ-BThN9RD2.js.gz +0 -0
  288. package/out/renderer/assets/vennDiagram-DHZGUBPP-DvL9CApP.js.br +0 -0
  289. package/out/renderer/assets/vennDiagram-DHZGUBPP-DvL9CApP.js.gz +0 -0
  290. package/out/renderer/assets/wardley-RL74JXVD-B4vPxA-A.js.br +0 -0
  291. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-A3F8zuNA.js.br +0 -0
  292. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-A3F8zuNA.js.gz +0 -0
  293. package/out/renderer/assets/xychartDiagram-5P7HB3ND-BxjT7l5Q.js.br +0 -0
  294. package/out/renderer/assets/xychartDiagram-5P7HB3ND-BxjT7l5Q.js.gz +0 -0
@@ -1,5 +1,113 @@
1
1
  import { existsSync, readFileSync } from "fs";
2
2
  import { Parser, Language } from "web-tree-sitter";
3
+ const DEFAULT_DETAIL_LABELS = /* @__PURE__ */ new Set(["import", "import from", "export"]);
4
+ function stripQuotes(text) {
5
+ return text.replace(/^['"`]|['"`]$/g, "");
6
+ }
7
+ function findNestedString(cursor, sourceTypes) {
8
+ if (!cursor.gotoFirstChild()) return "";
9
+ let found = "";
10
+ do {
11
+ const type = cursor.nodeType;
12
+ if (type === "string" || type === "string_literal" || type === "interpreted_string_literal") {
13
+ found = stripQuotes(cursor.nodeText);
14
+ break;
15
+ }
16
+ if (sourceTypes.has(type)) {
17
+ found = findNestedString(cursor, sourceTypes);
18
+ if (found) break;
19
+ }
20
+ } while (cursor.gotoNextSibling());
21
+ cursor.gotoParent();
22
+ return found;
23
+ }
24
+ function extractImportExportDetail(cursor, nodeText, label, config) {
25
+ const sourceFields = new Set(config.sourceFields || []);
26
+ const sourceTypes = new Set(config.sourceTypes || []);
27
+ const clauseTypes = new Set(config.clauseTypes || []);
28
+ const typeKeywordTypes = new Set(config.typeKeywordTypes || []);
29
+ let source = "";
30
+ let clauses = [];
31
+ let hasTypeKeyword = false;
32
+ if (!cursor.gotoFirstChild()) {
33
+ return { name: nodeText.trim() };
34
+ }
35
+ do {
36
+ const field = cursor.currentFieldName;
37
+ const type = cursor.nodeType;
38
+ const text = cursor.nodeText;
39
+ if (field && sourceFields.has(field)) {
40
+ source = stripQuotes(text);
41
+ } else if (sourceTypes.has(type)) {
42
+ if (!source) {
43
+ if (type === "string" || type === "string_literal" || type === "interpreted_string_literal") {
44
+ source = stripQuotes(text);
45
+ } else {
46
+ const nested = findNestedString(cursor, sourceTypes);
47
+ source = nested || stripQuotes(text);
48
+ }
49
+ }
50
+ } else if (clauseTypes.has(type)) {
51
+ clauses.push(text);
52
+ } else if (typeKeywordTypes.has(type)) {
53
+ hasTypeKeyword = true;
54
+ }
55
+ } while (cursor.gotoNextSibling());
56
+ cursor.gotoParent();
57
+ if (!source && config.clausesAsSource && clauses.length > 0) {
58
+ source = clauses.join(", ");
59
+ clauses = [];
60
+ }
61
+ if (!source && config.textFallbackPattern) {
62
+ const match = nodeText.match(new RegExp(config.textFallbackPattern));
63
+ if (match) {
64
+ source = match[1] || "";
65
+ if (match[2]) clauses = [match[2].trim()];
66
+ }
67
+ }
68
+ let detail;
69
+ if (clauses.length > 0) {
70
+ const clauseText = clauses.join(", ").replace(/\s*\n\s*/g, " ").replace(/\s{2,}/g, " ");
71
+ detail = hasTypeKeyword && !clauseText.startsWith("type") ? `type ${clauseText}` : clauseText;
72
+ }
73
+ if (!source && config.detailAsNameWhenNoSource) {
74
+ const keyword = label.split(" ")[0];
75
+ const pattern = new RegExp(`^${keyword}\\s*`);
76
+ let firstLine = nodeText.split("\n")[0].replace(pattern, "").trim();
77
+ if (config.trimPatterns) {
78
+ for (const tp of config.trimPatterns) {
79
+ firstLine = firstLine.replace(new RegExp(tp), "").trim();
80
+ }
81
+ }
82
+ return { name: detail || firstLine, detail: void 0 };
83
+ }
84
+ if (!source) {
85
+ const keyword = label.split(" ")[0];
86
+ const pattern = new RegExp(`^${keyword}\\s+`);
87
+ let firstLine = nodeText.split("\n")[0].replace(pattern, "").trim();
88
+ if (config.trimPatterns) {
89
+ for (const tp of config.trimPatterns) {
90
+ firstLine = firstLine.replace(new RegExp(tp), "").trim();
91
+ }
92
+ }
93
+ const cleanDetail = detail && firstLine.includes(detail) ? void 0 : detail;
94
+ return { name: firstLine, detail: cleanDetail };
95
+ }
96
+ return { name: source, detail };
97
+ }
98
+ function resolveLabel(cursor, sym) {
99
+ if (!sym.labelByChild) return sym.label;
100
+ if (!cursor.gotoFirstChild()) return sym.label;
101
+ let resolved;
102
+ do {
103
+ const childType = cursor.nodeType;
104
+ const childText = cursor.nodeText.trim();
105
+ resolved = sym.labelByChild[childType] ?? sym.labelByChild[childText];
106
+ if (resolved) break;
107
+ } while (cursor.gotoNextSibling());
108
+ cursor.gotoParent();
109
+ return resolved ?? sym.label;
110
+ }
3
111
  function scanName(cursor, nameOf) {
4
112
  if (!cursor.gotoFirstChild()) return "";
5
113
  const idTypes = new Set(nameOf.identifierTypes || []);
@@ -21,21 +129,26 @@ function scanName(cursor, nameOf) {
21
129
  if (!name && recTypes.has(t)) {
22
130
  name = scanName(cursor, nameOf);
23
131
  }
24
- if (!name && idTypes.has(t)) {
25
- if (t !== "type_identifier" || cursor.currentFieldName !== "type") {
26
- name = cursor.nodeText;
27
- }
132
+ } while (!name && cursor.gotoNextSibling());
133
+ if (!name) {
134
+ cursor.gotoParent();
135
+ if (!cursor.gotoFirstChild()) {
136
+ return "";
28
137
  }
29
- } while (cursor.gotoNextSibling());
138
+ do {
139
+ const t = cursor.nodeType;
140
+ if (idTypes.has(t)) {
141
+ if (t !== "type_identifier" || cursor.currentFieldName !== "type") {
142
+ name = cursor.nodeText;
143
+ break;
144
+ }
145
+ }
146
+ } while (cursor.gotoNextSibling());
147
+ }
30
148
  cursor.gotoParent();
31
149
  return name;
32
150
  }
33
- function isPythonDocstring(cursor) {
34
- if (cursor.nodeType !== "expression_statement") return false;
35
- const text = cursor.nodeText.trim();
36
- return text.startsWith('"""') || text.startsWith("'''");
37
- }
38
- function collectComments(tree) {
151
+ function collectComments(tree, docstrings) {
39
152
  const comments = [];
40
153
  const cursor = tree.walk();
41
154
  let descend = true;
@@ -43,7 +156,19 @@ function collectComments(tree) {
43
156
  while (true) {
44
157
  if (cursor.currentDepth < 0) break;
45
158
  const t = cursor.nodeType;
46
- if (t === "comment" || t === "line_comment" || t === "multiline_comment" || isPythonDocstring(cursor)) {
159
+ let isComment = t === "comment" || t === "line_comment" || t === "multiline_comment" || t === "documentation_comment";
160
+ if (!isComment && docstrings) {
161
+ for (const ds of docstrings) {
162
+ if (t === ds.nodeType) {
163
+ const text = cursor.nodeText.trim();
164
+ if (ds.prefixes.some((p) => text.startsWith(p))) {
165
+ isComment = true;
166
+ break;
167
+ }
168
+ }
169
+ }
170
+ }
171
+ if (isComment) {
47
172
  comments.push({
48
173
  text: cursor.nodeText.trim(),
49
174
  startLine: cursor.startPosition.row + 1,
@@ -67,20 +192,20 @@ function collectComments(tree) {
67
192
  return comments;
68
193
  }
69
194
  function cleanComment(text) {
70
- let cleaned = text.replace(/^\/\*\*?/, "").replace(/\*\/$/, "").replace(/^\s*\* ?/gm, "").replace(/^\/+/, "").replace(/^#/, "").replace(/^'''/, "").replace(/'''$/, "").replace(/^"""/, "").replace(/"""$/, "").trim();
195
+ let cleaned = text.replace(/^\/\*\*?/, "").replace(/\*\/$/, "").replace(/^\s*\* ?/gm, "").replace(/^\s*\/\/\/? ?/gm, "").replace(/^#/, "").replace(/^'''/, "").replace(/'''$/, "").replace(/^"""/, "").replace(/"""$/, "").trim();
71
196
  const lines = cleaned.split("\n").map((l) => l.trim()).filter(Boolean);
72
197
  return lines.length > 0 ? lines[0] : "";
73
198
  }
74
199
  function attachComments(symbols, comments) {
75
200
  let ci = 0;
76
201
  for (const sym of symbols) {
77
- if (sym.depth > 0) continue;
78
202
  while (ci < comments.length && comments[ci].endLine < sym.startLine - 2) ci++;
79
203
  if (ci < comments.length) {
80
204
  const c = comments[ci];
81
205
  const gap = sym.startLine - c.endLine;
82
206
  if (gap === 1 || gap === 2) {
83
207
  sym.comment = cleanComment(c.text);
208
+ ci++;
84
209
  continue;
85
210
  }
86
211
  }
@@ -102,11 +227,13 @@ async function parse(req) {
102
227
  const parser = new Parser();
103
228
  parser.setLanguage(lang);
104
229
  const source = readFileSync(req.filePath, "utf8");
105
- const totalLines = source.split("\n").length;
230
+ const totalLines = source.endsWith("\n") ? source.split("\n").length - 1 : source.split("\n").length;
106
231
  const tree = parser.parse(source);
107
232
  if (!tree) throw new Error("Failed to parse");
108
233
  let result = [];
109
234
  const typeSet = new Set(req.symbols.flatMap((s) => s.types));
235
+ const symbolScanBoundaryTypes = new Set(req.symbolScanBoundaryTypes || []);
236
+ const detailLabels = req.statementDetail ? new Set(req.statementDetail.labels || DEFAULT_DETAIL_LABELS) : null;
110
237
  const cursor = tree.walk();
111
238
  try {
112
239
  let descend = true, declDepth = -1;
@@ -119,19 +246,54 @@ async function parse(req) {
119
246
  if (descend && isDecl) {
120
247
  for (const sym of req.symbols) {
121
248
  if (sym.types.includes(t) && (sym.maxDepth === void 0 || declDepth <= sym.maxDepth)) {
249
+ const kind = resolveLabel(cursor, sym);
122
250
  let name = "";
123
- if (sym.hasName) name = scanName(cursor, req.nameOf);
251
+ let detail;
252
+ let useContentEndLine = false;
253
+ if (sym.hasName) {
254
+ if (detailLabels?.has(kind)) {
255
+ const info = extractImportExportDetail(
256
+ cursor,
257
+ cursor.nodeText,
258
+ kind,
259
+ req.statementDetail
260
+ );
261
+ name = info.name;
262
+ detail = info.detail;
263
+ useContentEndLine = true;
264
+ } else {
265
+ name = scanName(cursor, req.nameOf);
266
+ }
267
+ }
268
+ const startLine = cursor.startPosition.row + 1;
269
+ let endLine;
270
+ if (useContentEndLine) {
271
+ const lines = cursor.nodeText.split("\n");
272
+ let count = 0;
273
+ for (const line of lines) {
274
+ if (line.trim() === "") break;
275
+ count++;
276
+ }
277
+ endLine = startLine + Math.max(count, 1) - 1;
278
+ } else {
279
+ endLine = cursor.endPosition.row + 1;
280
+ }
124
281
  result.push({
125
- kind: sym.label,
126
- name: sym.hasName ? name || `(anonymous ${sym.label})` : "",
127
- startLine: cursor.startPosition.row + 1,
128
- endLine: cursor.endPosition.row + 1,
129
- depth: declDepth
282
+ kind,
283
+ name: sym.hasName ? name || `(anonymous ${kind})` : "",
284
+ startLine,
285
+ endLine,
286
+ depth: declDepth,
287
+ ...detail ? { detail } : {}
130
288
  });
131
289
  break;
132
290
  }
133
291
  }
134
292
  }
293
+ if (descend && symbolScanBoundaryTypes.has(t)) {
294
+ descend = false;
295
+ continue;
296
+ }
135
297
  if (descend && cursor.gotoFirstChild()) continue;
136
298
  if (cursor.gotoNextSibling()) {
137
299
  descend = true;
@@ -156,6 +318,13 @@ async function parse(req) {
156
318
  const wStart = wCursor.startPosition.row + 1;
157
319
  const wEnd = wCursor.endPosition.row + 1;
158
320
  const maxDepth = wrapper.maxDepth ?? Infinity;
321
+ let effectivePrefix = wrapper.prefix;
322
+ const wNodeFirstLine = wCursor.nodeText.split("\n")[0];
323
+ const prefixKeyword = wrapper.prefix.trim();
324
+ const afterKeyword = wNodeFirstLine.slice(wNodeFirstLine.indexOf(prefixKeyword) + prefixKeyword.length).trimStart();
325
+ if (afterKeyword.startsWith("default ") || afterKeyword.startsWith("default\n")) {
326
+ effectivePrefix = wrapper.prefix + "default ";
327
+ }
159
328
  const covered = result.some(
160
329
  (r) => r.startLine >= wStart && r.endLine <= wEnd && r.depth <= maxDepth
161
330
  );
@@ -169,28 +338,73 @@ async function parse(req) {
169
338
  r.depth = 1;
170
339
  continue;
171
340
  }
172
- if (r.kind.startsWith(wrapper.prefix)) continue;
341
+ if (r.kind.startsWith(effectivePrefix)) continue;
173
342
  let inserted = false;
174
343
  for (const existing of appliedPrefixes) {
175
344
  if (r.kind.startsWith(existing)) {
176
- r.kind = existing + wrapper.prefix + r.kind.slice(existing.length);
345
+ r.kind = existing + effectivePrefix + r.kind.slice(existing.length);
177
346
  inserted = true;
178
347
  break;
179
348
  }
180
349
  }
181
350
  if (!inserted) {
182
- r.kind = wrapper.prefix + r.kind;
351
+ r.kind = effectivePrefix + r.kind;
183
352
  }
184
353
  }
185
354
  }
355
+ if (wrapper.createContainerWhenCovered && wrapper.createStandaloneLabel) {
356
+ const label = wrapper.createStandaloneLabel;
357
+ let containerName;
358
+ let containerDetail;
359
+ if (detailLabels?.has(label)) {
360
+ const info = extractImportExportDetail(
361
+ wCursor,
362
+ wCursor.nodeText,
363
+ label,
364
+ req.statementDetail
365
+ );
366
+ containerName = info.name;
367
+ containerDetail = info.detail;
368
+ } else {
369
+ containerName = scanName(wCursor, req.nameOf);
370
+ }
371
+ for (const r of result) {
372
+ if (r.startLine >= wStart && r.endLine <= wEnd) {
373
+ r.depth++;
374
+ }
375
+ }
376
+ result.push({
377
+ kind: label,
378
+ name: containerName || "{...}",
379
+ startLine: wStart,
380
+ endLine: wEnd,
381
+ depth: 0,
382
+ ...containerDetail ? { detail: containerDetail } : {}
383
+ });
384
+ }
186
385
  } else if (wrapper.createStandaloneLabel) {
187
- const exportName = scanName(wCursor, req.nameOf);
386
+ const label = wrapper.createStandaloneLabel;
387
+ let exportName;
388
+ let exportDetail;
389
+ if (detailLabels?.has(label)) {
390
+ const info = extractImportExportDetail(
391
+ wCursor,
392
+ wCursor.nodeText,
393
+ label,
394
+ req.statementDetail
395
+ );
396
+ exportName = info.name;
397
+ exportDetail = info.detail;
398
+ } else {
399
+ exportName = scanName(wCursor, req.nameOf);
400
+ }
188
401
  result.push({
189
- kind: wrapper.createStandaloneLabel,
402
+ kind: label,
190
403
  name: exportName || "{...}",
191
404
  startLine: wStart,
192
405
  endLine: wEnd,
193
- depth: 0
406
+ depth: 0,
407
+ ...exportDetail ? { detail: exportDetail } : {}
194
408
  });
195
409
  }
196
410
  }
@@ -212,7 +426,7 @@ async function parse(req) {
212
426
  }
213
427
  }
214
428
  result.sort((a, b) => a.startLine - b.startLine);
215
- const comments = collectComments(tree);
429
+ const comments = collectComments(tree, req.docstrings);
216
430
  attachComments(result, comments);
217
431
  return { symbols: result, totalLines };
218
432
  } finally {