pi-usereq 0.4.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 (361) hide show
  1. package/.g.conf +20 -0
  2. package/.github/workflows/release-npm.yml +131 -0
  3. package/.gitignore +270 -0
  4. package/CHANGELOG.md +221 -0
  5. package/LICENSE +674 -0
  6. package/README.md +260 -0
  7. package/TODO.md +20 -0
  8. package/docs/pi.dev/agent-document-manifest.json +6399 -0
  9. package/docs/pi.dev/coding-agent-docs/compaction.md +394 -0
  10. package/docs/pi.dev/coding-agent-docs/custom-provider.md +596 -0
  11. package/docs/pi.dev/coding-agent-docs/development.md +71 -0
  12. package/docs/pi.dev/coding-agent-docs/extensions.md +2262 -0
  13. package/docs/pi.dev/coding-agent-docs/images/doom-extension.png +0 -0
  14. package/docs/pi.dev/coding-agent-docs/images/exy.png +0 -0
  15. package/docs/pi.dev/coding-agent-docs/images/interactive-mode.png +0 -0
  16. package/docs/pi.dev/coding-agent-docs/images/tree-view.png +0 -0
  17. package/docs/pi.dev/coding-agent-docs/json.md +82 -0
  18. package/docs/pi.dev/coding-agent-docs/keybindings.md +175 -0
  19. package/docs/pi.dev/coding-agent-docs/models.md +392 -0
  20. package/docs/pi.dev/coding-agent-docs/packages.md +218 -0
  21. package/docs/pi.dev/coding-agent-docs/prompt-templates.md +67 -0
  22. package/docs/pi.dev/coding-agent-docs/providers.md +195 -0
  23. package/docs/pi.dev/coding-agent-docs/rpc.md +1377 -0
  24. package/docs/pi.dev/coding-agent-docs/sdk.md +1124 -0
  25. package/docs/pi.dev/coding-agent-docs/session.md +412 -0
  26. package/docs/pi.dev/coding-agent-docs/settings.md +247 -0
  27. package/docs/pi.dev/coding-agent-docs/shell-aliases.md +13 -0
  28. package/docs/pi.dev/coding-agent-docs/skills.md +232 -0
  29. package/docs/pi.dev/coding-agent-docs/terminal-setup.md +106 -0
  30. package/docs/pi.dev/coding-agent-docs/termux.md +127 -0
  31. package/docs/pi.dev/coding-agent-docs/themes.md +295 -0
  32. package/docs/pi.dev/coding-agent-docs/tmux.md +61 -0
  33. package/docs/pi.dev/coding-agent-docs/tree.md +231 -0
  34. package/docs/pi.dev/coding-agent-docs/tui.md +887 -0
  35. package/docs/pi.dev/coding-agent-docs/windows.md +17 -0
  36. package/docs/pi.dev/mom-docs/artifacts-server.md +475 -0
  37. package/docs/pi.dev/mom-docs/events.md +307 -0
  38. package/docs/pi.dev/mom-docs/new.md +970 -0
  39. package/docs/pi.dev/mom-docs/sandbox.md +153 -0
  40. package/docs/pi.dev/mom-docs/slack-bot-minimal-guide.md +399 -0
  41. package/docs/pi.dev/mom-docs/v86.md +319 -0
  42. package/docs/pi.dev/pods-docs/gml-4.5.md +189 -0
  43. package/docs/pi.dev/pods-docs/gpt-oss.md +233 -0
  44. package/docs/pi.dev/pods-docs/implementation-plan.md +183 -0
  45. package/docs/pi.dev/pods-docs/kimi-k2.md +197 -0
  46. package/docs/pi.dev/pods-docs/models.md +116 -0
  47. package/docs/pi.dev/pods-docs/plan.md +166 -0
  48. package/docs/pi.dev/pods-docs/qwen3-coder.md +132 -0
  49. package/images/flowchart-bw.png +0 -0
  50. package/images/flowchart-bw.svg +102 -0
  51. package/images/flowchart.md +100 -0
  52. package/images/flowchart.png +0 -0
  53. package/images/flowchart.svg +3 -0
  54. package/package.json +46 -0
  55. package/req/docs/REFERENCES.md +4554 -0
  56. package/req/docs/REQUIREMENTS.md +475 -0
  57. package/req/docs/WORKFLOW.md +1059 -0
  58. package/scripts/debug-extension.ts +497 -0
  59. package/scripts/lib/extension-debug-harness.ts +450 -0
  60. package/scripts/lib/recording-extension-api.ts +786 -0
  61. package/scripts/lib/sdk-smoke.ts +503 -0
  62. package/scripts/pi-usereq-debug.sh +330 -0
  63. package/scripts/tool-args-to-params.ts +208 -0
  64. package/src/cli.ts +349 -0
  65. package/src/core/agent-tool-json.ts +621 -0
  66. package/src/core/compress-files.ts +72 -0
  67. package/src/core/compress-payload.ts +648 -0
  68. package/src/core/compress.ts +464 -0
  69. package/src/core/config.ts +272 -0
  70. package/src/core/doxygen-parser.ts +318 -0
  71. package/src/core/errors.ts +31 -0
  72. package/src/core/extension-status.ts +660 -0
  73. package/src/core/find-constructs.ts +319 -0
  74. package/src/core/find-payload.ts +915 -0
  75. package/src/core/generate-markdown.ts +120 -0
  76. package/src/core/path-context.ts +196 -0
  77. package/src/core/pi-notify.ts +430 -0
  78. package/src/core/pi-usereq-tools.ts +140 -0
  79. package/src/core/prompts.ts +184 -0
  80. package/src/core/reference-payload.ts +818 -0
  81. package/src/core/resources.ts +63 -0
  82. package/src/core/runtime-project-paths.ts +99 -0
  83. package/src/core/settings-menu.ts +233 -0
  84. package/src/core/source-analyzer.ts +1721 -0
  85. package/src/core/static-check.ts +674 -0
  86. package/src/core/token-counter.ts +729 -0
  87. package/src/core/tool-runner.ts +717 -0
  88. package/src/core/utils.ts +185 -0
  89. package/src/index.ts +2209 -0
  90. package/src/resources/guidelines/Google_C++_Style_Guide.md +3711 -0
  91. package/src/resources/guidelines/Google_Python_Style_Guide.md +3709 -0
  92. package/src/resources/prompts/analyze.md +130 -0
  93. package/src/resources/prompts/change.md +227 -0
  94. package/src/resources/prompts/check.md +139 -0
  95. package/src/resources/prompts/cover.md +219 -0
  96. package/src/resources/prompts/create.md +104 -0
  97. package/src/resources/prompts/fix.md +221 -0
  98. package/src/resources/prompts/flowchart.md +220 -0
  99. package/src/resources/prompts/implement.md +163 -0
  100. package/src/resources/prompts/new.md +226 -0
  101. package/src/resources/prompts/readme.md +182 -0
  102. package/src/resources/prompts/recreate.md +213 -0
  103. package/src/resources/prompts/refactor.md +213 -0
  104. package/src/resources/prompts/references.md +100 -0
  105. package/src/resources/prompts/renumber.md +119 -0
  106. package/src/resources/prompts/workflow.md +202 -0
  107. package/src/resources/prompts/write.md +99 -0
  108. package/src/resources/sounds/Machine-alert-beep-sound-effect.mp3 +0 -0
  109. package/src/resources/sounds/Soft-high-tech-notification-sound-effect.mp3 +0 -0
  110. package/src/resources/templates/Document_Source_Code_in_Doxygen_Style.md +130 -0
  111. package/src/resources/templates/HDT_Test_Authoring_Guide.md +318 -0
  112. package/src/resources/templates/Requirements_Template.md +78 -0
  113. package/tests/attended-results-scenarios.ts +758 -0
  114. package/tests/attended-results.test.ts +39 -0
  115. package/tests/cli-command-option-parity.test.ts +815 -0
  116. package/tests/debug-extension-harness.test.ts +463 -0
  117. package/tests/extension-registration.test.ts +2006 -0
  118. package/tests/fixtures/fixture_c.c +361 -0
  119. package/tests/fixtures/fixture_cpp.cpp +407 -0
  120. package/tests/fixtures/fixture_csharp.cs +411 -0
  121. package/tests/fixtures/fixture_elixir.ex +409 -0
  122. package/tests/fixtures/fixture_go.go +341 -0
  123. package/tests/fixtures/fixture_haskell.hs +250 -0
  124. package/tests/fixtures/fixture_java.java +430 -0
  125. package/tests/fixtures/fixture_javascript.js +383 -0
  126. package/tests/fixtures/fixture_kotlin.kt +451 -0
  127. package/tests/fixtures/fixture_lua.lua +276 -0
  128. package/tests/fixtures/fixture_perl.pl +310 -0
  129. package/tests/fixtures/fixture_php.php +433 -0
  130. package/tests/fixtures/fixture_python.py +502 -0
  131. package/tests/fixtures/fixture_ruby.rb +345 -0
  132. package/tests/fixtures/fixture_rust.rs +380 -0
  133. package/tests/fixtures/fixture_scala.scala +398 -0
  134. package/tests/fixtures/fixture_shell.sh +276 -0
  135. package/tests/fixtures/fixture_swift.swift +397 -0
  136. package/tests/fixtures/fixture_typescript.ts +434 -0
  137. package/tests/fixtures/fixture_zig.zig +295 -0
  138. package/tests/fixtures_attended_results/project/compress-line-numbers.json +5 -0
  139. package/tests/fixtures_attended_results/project/compress.json +5 -0
  140. package/tests/fixtures_attended_results/project/enable-static-check-invalid-command.json +5 -0
  141. package/tests/fixtures_attended_results/project/enable-static-check-valid.json +5 -0
  142. package/tests/fixtures_attended_results/project/files-static-check.json +5 -0
  143. package/tests/fixtures_attended_results/project/find-line-numbers.json +5 -0
  144. package/tests/fixtures_attended_results/project/find.json +5 -0
  145. package/tests/fixtures_attended_results/project/get-base-path.json +5 -0
  146. package/tests/fixtures_attended_results/project/git-check-clean.json +5 -0
  147. package/tests/fixtures_attended_results/project/git-check-dirty.json +5 -0
  148. package/tests/fixtures_attended_results/project/git-path.json +5 -0
  149. package/tests/fixtures_attended_results/project/git-wt-create-invalid.json +5 -0
  150. package/tests/fixtures_attended_results/project/git-wt-create-valid.json +5 -0
  151. package/tests/fixtures_attended_results/project/git-wt-delete-nonexistent.json +5 -0
  152. package/tests/fixtures_attended_results/project/git-wt-delete-valid.json +5 -0
  153. package/tests/fixtures_attended_results/project/git-wt-name.json +5 -0
  154. package/tests/fixtures_attended_results/project/references.json +5 -0
  155. package/tests/fixtures_attended_results/project/static-check.json +5 -0
  156. package/tests/fixtures_attended_results/project/tokens.json +5 -0
  157. package/tests/fixtures_attended_results/standalone/files-compress/fixture_c.c.json +5 -0
  158. package/tests/fixtures_attended_results/standalone/files-compress/fixture_cpp.cpp.json +5 -0
  159. package/tests/fixtures_attended_results/standalone/files-compress/fixture_csharp.cs.json +5 -0
  160. package/tests/fixtures_attended_results/standalone/files-compress/fixture_elixir.ex.json +5 -0
  161. package/tests/fixtures_attended_results/standalone/files-compress/fixture_go.go.json +5 -0
  162. package/tests/fixtures_attended_results/standalone/files-compress/fixture_haskell.hs.json +5 -0
  163. package/tests/fixtures_attended_results/standalone/files-compress/fixture_java.java.json +5 -0
  164. package/tests/fixtures_attended_results/standalone/files-compress/fixture_javascript.js.json +5 -0
  165. package/tests/fixtures_attended_results/standalone/files-compress/fixture_kotlin.kt.json +5 -0
  166. package/tests/fixtures_attended_results/standalone/files-compress/fixture_lua.lua.json +5 -0
  167. package/tests/fixtures_attended_results/standalone/files-compress/fixture_perl.pl.json +5 -0
  168. package/tests/fixtures_attended_results/standalone/files-compress/fixture_php.php.json +5 -0
  169. package/tests/fixtures_attended_results/standalone/files-compress/fixture_python.py.json +5 -0
  170. package/tests/fixtures_attended_results/standalone/files-compress/fixture_ruby.rb.json +5 -0
  171. package/tests/fixtures_attended_results/standalone/files-compress/fixture_rust.rs.json +5 -0
  172. package/tests/fixtures_attended_results/standalone/files-compress/fixture_scala.scala.json +5 -0
  173. package/tests/fixtures_attended_results/standalone/files-compress/fixture_shell.sh.json +5 -0
  174. package/tests/fixtures_attended_results/standalone/files-compress/fixture_swift.swift.json +5 -0
  175. package/tests/fixtures_attended_results/standalone/files-compress/fixture_typescript.ts.json +5 -0
  176. package/tests/fixtures_attended_results/standalone/files-compress/fixture_zig.zig.json +5 -0
  177. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_c.c.json +5 -0
  178. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_cpp.cpp.json +5 -0
  179. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_csharp.cs.json +5 -0
  180. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_elixir.ex.json +5 -0
  181. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_go.go.json +5 -0
  182. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_haskell.hs.json +5 -0
  183. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_java.java.json +5 -0
  184. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_javascript.js.json +5 -0
  185. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_kotlin.kt.json +5 -0
  186. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_lua.lua.json +5 -0
  187. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_perl.pl.json +5 -0
  188. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_php.php.json +5 -0
  189. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_python.py.json +5 -0
  190. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_ruby.rb.json +5 -0
  191. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_rust.rs.json +5 -0
  192. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_scala.scala.json +5 -0
  193. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_shell.sh.json +5 -0
  194. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_swift.swift.json +5 -0
  195. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_typescript.ts.json +5 -0
  196. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_zig.zig.json +5 -0
  197. package/tests/fixtures_attended_results/standalone/files-find/fixture_c.c.json +5 -0
  198. package/tests/fixtures_attended_results/standalone/files-find/fixture_cpp.cpp.json +5 -0
  199. package/tests/fixtures_attended_results/standalone/files-find/fixture_csharp.cs.json +5 -0
  200. package/tests/fixtures_attended_results/standalone/files-find/fixture_elixir.ex.json +5 -0
  201. package/tests/fixtures_attended_results/standalone/files-find/fixture_go.go.json +5 -0
  202. package/tests/fixtures_attended_results/standalone/files-find/fixture_haskell.hs.json +5 -0
  203. package/tests/fixtures_attended_results/standalone/files-find/fixture_java.java.json +5 -0
  204. package/tests/fixtures_attended_results/standalone/files-find/fixture_javascript.js.json +5 -0
  205. package/tests/fixtures_attended_results/standalone/files-find/fixture_kotlin.kt.json +5 -0
  206. package/tests/fixtures_attended_results/standalone/files-find/fixture_lua.lua.json +5 -0
  207. package/tests/fixtures_attended_results/standalone/files-find/fixture_perl.pl.json +5 -0
  208. package/tests/fixtures_attended_results/standalone/files-find/fixture_php.php.json +5 -0
  209. package/tests/fixtures_attended_results/standalone/files-find/fixture_python.py.json +5 -0
  210. package/tests/fixtures_attended_results/standalone/files-find/fixture_ruby.rb.json +5 -0
  211. package/tests/fixtures_attended_results/standalone/files-find/fixture_rust.rs.json +5 -0
  212. package/tests/fixtures_attended_results/standalone/files-find/fixture_scala.scala.json +5 -0
  213. package/tests/fixtures_attended_results/standalone/files-find/fixture_shell.sh.json +5 -0
  214. package/tests/fixtures_attended_results/standalone/files-find/fixture_swift.swift.json +5 -0
  215. package/tests/fixtures_attended_results/standalone/files-find/fixture_typescript.ts.json +5 -0
  216. package/tests/fixtures_attended_results/standalone/files-find/fixture_zig.zig.json +5 -0
  217. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_c.c.json +5 -0
  218. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_cpp.cpp.json +5 -0
  219. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_csharp.cs.json +5 -0
  220. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_elixir.ex.json +5 -0
  221. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_go.go.json +5 -0
  222. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_haskell.hs.json +5 -0
  223. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_java.java.json +5 -0
  224. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_javascript.js.json +5 -0
  225. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_kotlin.kt.json +5 -0
  226. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_lua.lua.json +5 -0
  227. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_perl.pl.json +5 -0
  228. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_php.php.json +5 -0
  229. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_python.py.json +5 -0
  230. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_ruby.rb.json +5 -0
  231. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_rust.rs.json +5 -0
  232. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_scala.scala.json +5 -0
  233. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_shell.sh.json +5 -0
  234. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_swift.swift.json +5 -0
  235. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_typescript.ts.json +5 -0
  236. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_zig.zig.json +5 -0
  237. package/tests/fixtures_attended_results/standalone/files-references/fixture_c.c.json +5 -0
  238. package/tests/fixtures_attended_results/standalone/files-references/fixture_cpp.cpp.json +5 -0
  239. package/tests/fixtures_attended_results/standalone/files-references/fixture_csharp.cs.json +5 -0
  240. package/tests/fixtures_attended_results/standalone/files-references/fixture_elixir.ex.json +5 -0
  241. package/tests/fixtures_attended_results/standalone/files-references/fixture_go.go.json +5 -0
  242. package/tests/fixtures_attended_results/standalone/files-references/fixture_haskell.hs.json +5 -0
  243. package/tests/fixtures_attended_results/standalone/files-references/fixture_java.java.json +5 -0
  244. package/tests/fixtures_attended_results/standalone/files-references/fixture_javascript.js.json +5 -0
  245. package/tests/fixtures_attended_results/standalone/files-references/fixture_kotlin.kt.json +5 -0
  246. package/tests/fixtures_attended_results/standalone/files-references/fixture_lua.lua.json +5 -0
  247. package/tests/fixtures_attended_results/standalone/files-references/fixture_perl.pl.json +5 -0
  248. package/tests/fixtures_attended_results/standalone/files-references/fixture_php.php.json +5 -0
  249. package/tests/fixtures_attended_results/standalone/files-references/fixture_python.py.json +5 -0
  250. package/tests/fixtures_attended_results/standalone/files-references/fixture_ruby.rb.json +5 -0
  251. package/tests/fixtures_attended_results/standalone/files-references/fixture_rust.rs.json +5 -0
  252. package/tests/fixtures_attended_results/standalone/files-references/fixture_scala.scala.json +5 -0
  253. package/tests/fixtures_attended_results/standalone/files-references/fixture_shell.sh.json +5 -0
  254. package/tests/fixtures_attended_results/standalone/files-references/fixture_swift.swift.json +5 -0
  255. package/tests/fixtures_attended_results/standalone/files-references/fixture_typescript.ts.json +5 -0
  256. package/tests/fixtures_attended_results/standalone/files-references/fixture_zig.zig.json +5 -0
  257. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_c.c.json +5 -0
  258. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_cpp.cpp.json +5 -0
  259. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_csharp.cs.json +5 -0
  260. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_elixir.ex.json +5 -0
  261. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_go.go.json +5 -0
  262. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_haskell.hs.json +5 -0
  263. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_java.java.json +5 -0
  264. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_javascript.js.json +5 -0
  265. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_kotlin.kt.json +5 -0
  266. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_lua.lua.json +5 -0
  267. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_perl.pl.json +5 -0
  268. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_php.php.json +5 -0
  269. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_python.py.json +5 -0
  270. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_ruby.rb.json +5 -0
  271. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_rust.rs.json +5 -0
  272. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_scala.scala.json +5 -0
  273. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_shell.sh.json +5 -0
  274. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_swift.swift.json +5 -0
  275. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_typescript.ts.json +5 -0
  276. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_zig.zig.json +5 -0
  277. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_c.c.json +5 -0
  278. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_cpp.cpp.json +5 -0
  279. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_csharp.cs.json +5 -0
  280. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_elixir.ex.json +5 -0
  281. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_go.go.json +5 -0
  282. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_haskell.hs.json +5 -0
  283. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_java.java.json +5 -0
  284. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_javascript.js.json +5 -0
  285. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_kotlin.kt.json +5 -0
  286. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_lua.lua.json +5 -0
  287. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_perl.pl.json +5 -0
  288. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_php.php.json +5 -0
  289. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_python.py.json +5 -0
  290. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_ruby.rb.json +5 -0
  291. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_rust.rs.json +5 -0
  292. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_scala.scala.json +5 -0
  293. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_shell.sh.json +5 -0
  294. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_swift.swift.json +5 -0
  295. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_typescript.ts.json +5 -0
  296. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_zig.zig.json +5 -0
  297. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_c.c.json +5 -0
  298. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_cpp.cpp.json +5 -0
  299. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_csharp.cs.json +5 -0
  300. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_elixir.ex.json +5 -0
  301. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_go.go.json +5 -0
  302. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_haskell.hs.json +5 -0
  303. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_java.java.json +5 -0
  304. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_javascript.js.json +5 -0
  305. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_kotlin.kt.json +5 -0
  306. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_lua.lua.json +5 -0
  307. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_perl.pl.json +5 -0
  308. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_php.php.json +5 -0
  309. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_python.py.json +5 -0
  310. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_ruby.rb.json +5 -0
  311. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_rust.rs.json +5 -0
  312. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_scala.scala.json +5 -0
  313. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_shell.sh.json +5 -0
  314. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_swift.swift.json +5 -0
  315. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_typescript.ts.json +5 -0
  316. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_zig.zig.json +5 -0
  317. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_c.c.json +5 -0
  318. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_cpp.cpp.json +5 -0
  319. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_csharp.cs.json +5 -0
  320. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_elixir.ex.json +5 -0
  321. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_go.go.json +5 -0
  322. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_haskell.hs.json +5 -0
  323. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_java.java.json +5 -0
  324. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_javascript.js.json +5 -0
  325. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_kotlin.kt.json +5 -0
  326. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_lua.lua.json +5 -0
  327. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_perl.pl.json +5 -0
  328. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_php.php.json +5 -0
  329. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_python.py.json +5 -0
  330. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_ruby.rb.json +5 -0
  331. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_rust.rs.json +5 -0
  332. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_scala.scala.json +5 -0
  333. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_shell.sh.json +5 -0
  334. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_swift.swift.json +5 -0
  335. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_typescript.ts.json +5 -0
  336. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_zig.zig.json +5 -0
  337. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_c.c.json +5 -0
  338. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_cpp.cpp.json +5 -0
  339. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_csharp.cs.json +5 -0
  340. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_elixir.ex.json +5 -0
  341. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_go.go.json +5 -0
  342. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_haskell.hs.json +5 -0
  343. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_java.java.json +5 -0
  344. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_javascript.js.json +5 -0
  345. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_kotlin.kt.json +5 -0
  346. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_lua.lua.json +5 -0
  347. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_perl.pl.json +5 -0
  348. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_php.php.json +5 -0
  349. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_python.py.json +5 -0
  350. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_ruby.rb.json +5 -0
  351. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_rust.rs.json +5 -0
  352. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_scala.scala.json +5 -0
  353. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_shell.sh.json +5 -0
  354. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_swift.swift.json +5 -0
  355. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_typescript.ts.json +5 -0
  356. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_zig.zig.json +5 -0
  357. package/tests/helpers.ts +204 -0
  358. package/tests/oracle-project.test.ts +63 -0
  359. package/tests/oracle-standalone.test.ts +48 -0
  360. package/tests/prompt-rendering.test.ts +66 -0
  361. package/tests/release-workflow.test.ts +133 -0
@@ -0,0 +1,5 @@
1
+ {
2
+ "code": 0,
3
+ "stdout": "{\n \"request\": {\n \"tool_name\": \"files-references\",\n \"scope\": \"explicit-files\",\n \"base_dir_path\": \"<ROOT>\",\n \"source_directory_count\": 0,\n \"source_directory_paths\": [],\n \"requested_file_count\": 1,\n \"requested_input_paths\": [\n \"tests/fixtures/fixture_javascript.js\"\n ],\n \"requested_canonical_paths\": [\n \"tests/fixtures/fixture_javascript.js\"\n ]\n },\n \"summary\": {\n \"processable_file_count\": 1,\n \"analyzed_file_count\": 1,\n \"error_file_count\": 0,\n \"skipped_file_count\": 0,\n \"total_symbol_count\": 39,\n \"total_import_count\": 5,\n \"total_comment_count\": 88,\n \"total_standalone_comment_count\": 50,\n \"total_doxygen_field_count\": 65,\n \"symbol_kind_counts\": {\n \"CLASS\": 5,\n \"COMPONENT\": 5,\n \"CONSTANT\": 5,\n \"FUNCTION\": 19,\n \"MODULE\": 5\n }\n },\n \"repository\": {\n \"root_directory_path\": \"<ROOT>\",\n \"source_directory_paths\": [],\n \"file_count\": 1,\n \"file_canonical_paths\": [\n \"tests/fixtures/fixture_javascript.js\"\n ],\n \"directory_tree\": {\n \"node_name\": \".\",\n \"relative_path\": \".\",\n \"node_kind\": \"directory\",\n \"child_count\": 1,\n \"children\": [\n {\n \"node_name\": \"tests\",\n \"relative_path\": \"tests\",\n \"node_kind\": \"directory\",\n \"child_count\": 1,\n \"children\": [\n {\n \"node_name\": \"fixtures\",\n \"relative_path\": \"tests/fixtures\",\n \"node_kind\": \"directory\",\n \"child_count\": 1,\n \"children\": [\n {\n \"node_name\": \"fixture_javascript.js\",\n \"relative_path\": \"tests/fixtures/fixture_javascript.js\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n }\n ]\n }\n ]\n }\n ]\n }\n },\n \"files\": [\n {\n \"start_line_number\": 1,\n \"end_line_number\": 383,\n \"line_range\": [\n 1,\n 383\n ],\n \"request_index\": 0,\n \"input_path\": \"tests/fixtures/fixture_javascript.js\",\n \"canonical_path\": \"tests/fixtures/fixture_javascript.js\",\n \"absolute_path\": \"<ROOT>/tests/fixtures/fixture_javascript.js\",\n \"file_name\": \"fixture_javascript.js\",\n \"file_extension\": \".js\",\n \"language_id\": \"javascript\",\n \"language_name\": \"JavaScript\",\n \"status\": \"analyzed\",\n \"exists\": true,\n \"is_file\": true,\n \"import_count\": 5,\n \"symbol_count\": 39,\n \"comment_count\": 88,\n \"standalone_comment_count\": 50,\n \"doxygen_field_count\": 65,\n \"file_doxygen\": {\n \"brief\": [\n \"Comprehensive JavaScript test fixture for parser validation.\"\n ],\n \"details\": [\n \"Covers classes with private fields, generators, async generators,\\nproxies, symbols, IIFE, dynamic imports, destructuring, computed\\nproperties, and chained promise patterns.\"\n ]\n },\n \"imports\": [\n {\n \"start_line_number\": 11,\n \"end_line_number\": 11,\n \"line_range\": [\n 11,\n 11\n ],\n \"import_name\": \"React from 'react';\",\n \"statement_text\": \"import React from 'react';\"\n },\n {\n \"start_line_number\": 12,\n \"end_line_number\": 12,\n \"line_range\": [\n 12,\n 12\n ],\n \"import_name\": \"{ useState, useEffect } from 'react';\",\n \"statement_text\": \"import { useState, useEffect } from 'react';\"\n },\n {\n \"start_line_number\": 329,\n \"end_line_number\": 329,\n \"line_range\": [\n 329,\n 329\n ],\n \"import_name\": \"fs from 'fs';\",\n \"statement_text\": \"import fs from 'fs';\"\n },\n {\n \"start_line_number\": 330,\n \"end_line_number\": 330,\n \"line_range\": [\n 330,\n 330\n ],\n \"import_name\": \"path from 'path';\",\n \"statement_text\": \"import path from 'path';\"\n },\n {\n \"start_line_number\": 331,\n \"end_line_number\": 331,\n \"line_range\": [\n 331,\n 331\n ],\n \"import_name\": \"url from 'url';\",\n \"statement_text\": \"import url from 'url';\"\n }\n ],\n \"symbols\": [\n {\n \"start_line_number\": 20,\n \"end_line_number\": 66,\n \"line_range\": [\n 20,\n 66\n ],\n \"declaration_order_index\": 0,\n \"symbol_name\": \"MyComponent\",\n \"qualified_name\": \"MyComponent\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class MyComponent\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"React-like component with private fields and static initialization.\",\n \"doxygen\": {\n \"brief\": [\n \"React-like component with private fields and static initialization.\",\n \"Private instance counter, not accessible outside the class.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"text\": \"@brief Private instance counter, not accessible outside the class.\",\n \"text_lines\": [\n \"@brief Private instance counter, not accessible outside the class.\"\n ]\n },\n {\n \"start_line_number\": 24,\n \"end_line_number\": 24,\n \"line_range\": [\n 24,\n 24\n ],\n \"text\": \"@brief Static registry of all component instances.\",\n \"text_lines\": [\n \"@brief Static registry of all component instances.\"\n ]\n },\n {\n \"start_line_number\": 27,\n \"end_line_number\": 27,\n \"line_range\": [\n 27,\n 27\n ],\n \"text\": \"Static initialization block (ES2022)\",\n \"text_lines\": [\n \"Static initialization block (ES2022)\"\n ]\n },\n {\n \"start_line_number\": 32,\n \"end_line_number\": 35,\n \"line_range\": [\n 32,\n 35\n ],\n \"text\": \"@brief Construct a new component with an optional ID. @param {number} [id=0] Unique identifier for this instance.\",\n \"text_lines\": [\n \"@brief Construct a new component with an optional ID. @param {number} [id=0] Unique identifier for this instance.\"\n ]\n },\n {\n \"start_line_number\": 41,\n \"end_line_number\": 44,\n \"line_range\": [\n 41,\n 44\n ],\n \"text\": \"@brief Render the component output. @return {null} Placeholder render returning null.\",\n \"text_lines\": [\n \"@brief Render the component output. @return {null} Placeholder render returning null.\"\n ]\n },\n {\n \"start_line_number\": 46,\n \"end_line_number\": 46,\n \"line_range\": [\n 46,\n 46\n ],\n \"text\": \"Delegate to internal render pipeline\",\n \"text_lines\": [\n \"Delegate to internal render pipeline\"\n ]\n },\n {\n \"start_line_number\": 50,\n \"end_line_number\": 53,\n \"line_range\": [\n 50,\n 53\n ],\n \"text\": \"@brief Retrieve the private instance ID. @return {number} The instance identifier.\",\n \"text_lines\": [\n \"@brief Retrieve the private instance ID. @return {number} The instance identifier.\"\n ]\n },\n {\n \"start_line_number\": 58,\n \"end_line_number\": 62,\n \"line_range\": [\n 58,\n 62\n ],\n \"text\": \"@brief Check if an ID exists in the static registry. @param {number} id The ID to look up. @return {boolean} True if the ID is registered.\",\n \"text_lines\": [\n \"@brief Check if an ID exists in the static registry. @param {number} id The ID to look up. @return {boolean} True if the ID is registered.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 47,\n \"text\": \"return null;\"\n },\n {\n \"line_number\": 55,\n \"text\": \"return this.#instanceId;\"\n },\n {\n \"line_number\": 64,\n \"text\": \"return MyComponent.#registry.has(id);\"\n }\n ]\n },\n {\n \"start_line_number\": 75,\n \"end_line_number\": 93,\n \"line_range\": [\n 75,\n 93\n ],\n \"declaration_order_index\": 1,\n \"symbol_name\": \"EnhancedComponent\",\n \"qualified_name\": \"EnhancedComponent\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class EnhancedComponent extends MyComponent\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"inherits_text\": \"MyComponent\",\n \"attached_comment_summary_text\": \"Extended component with lifecycle hooks.\",\n \"doxygen\": {\n \"brief\": [\n \"Extended component with lifecycle hooks.\",\n \"Override render to return a div element.\"\n ],\n \"returns\": [\n \"{Object} A simple virtual DOM node.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 76,\n \"end_line_number\": 79,\n \"line_range\": [\n 76,\n 79\n ],\n \"text\": \"@brief Override render to return a div element. @return {Object} A simple virtual DOM node.\",\n \"text_lines\": [\n \"@brief Override render to return a div element. @return {Object} A simple virtual DOM node.\"\n ]\n },\n {\n \"start_line_number\": 81,\n \"end_line_number\": 81,\n \"line_range\": [\n 81,\n 81\n ],\n \"text\": \"Call super for side effects then override output\",\n \"text_lines\": [\n \"Call super for side effects then override output\"\n ]\n },\n {\n \"start_line_number\": 86,\n \"end_line_number\": 89,\n \"line_range\": [\n 86,\n 89\n ],\n \"text\": \"@brief Lifecycle method called after mounting. @return {void}\",\n \"text_lines\": [\n \"@brief Lifecycle method called after mounting. @return {void}\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 83,\n \"text\": \"return { type: 'div', children: [] };\"\n }\n ]\n },\n {\n \"start_line_number\": 103,\n \"end_line_number\": 105,\n \"line_range\": [\n 103,\n 105\n ],\n \"declaration_order_index\": 2,\n \"symbol_name\": \"greet\",\n \"qualified_name\": \"greet\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function greet(name)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Greet a person by name.\",\n \"doxygen\": {\n \"brief\": [\n \"Greet a person by name.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"value_type\": \"string\",\n \"description\": \"The person's name.\"\n }\n ],\n \"returns\": [\n \"{string} Greeting message.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 104,\n \"text\": \"return \\\"Hello \\\" + name;\"\n }\n ]\n },\n {\n \"start_line_number\": 112,\n \"end_line_number\": 115,\n \"line_range\": [\n 112,\n 115\n ],\n \"declaration_order_index\": 3,\n \"symbol_name\": \"fetchData\",\n \"qualified_name\": \"fetchData\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"async function fetchData()\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Fetch data from the API endpoint asynchronously.\",\n \"doxygen\": {\n \"brief\": [\n \"Fetch data from the API endpoint asynchronously.\"\n ],\n \"returns\": [\n \"{Promise<Response>} The fetch response promise.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 113,\n \"end_line_number\": 113,\n \"line_range\": [\n 113,\n 113\n ],\n \"text\": \"Await the fetch and return result\",\n \"text_lines\": [\n \"Await the fetch and return result\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 114,\n \"text\": \"return await fetch('/api');\"\n }\n ]\n },\n {\n \"start_line_number\": 122,\n \"end_line_number\": 126,\n \"line_range\": [\n 122,\n 126\n ],\n \"declaration_order_index\": 4,\n \"symbol_name\": \"handler\",\n \"qualified_name\": \"handler\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"const handler = (event) =>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Event handler arrow function for UI events.\",\n \"doxygen\": {\n \"brief\": [\n \"Event handler arrow function for UI events.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"event\",\n \"value_type\": \"Event\",\n \"description\": \"The DOM event object.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 123,\n \"end_line_number\": 123,\n \"line_range\": [\n 123,\n 123\n ],\n \"text\": \"Log and prevent default browser behavior\",\n \"text_lines\": [\n \"Log and prevent default browser behavior\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 136,\n \"line_range\": [\n 134,\n 136\n ],\n \"declaration_order_index\": 5,\n \"symbol_name\": \"processItems\",\n \"qualified_name\": \"processItems\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"const processItems = ({ items, count }) =>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Arrow function with destructuring parameter.\",\n \"doxygen\": {\n \"brief\": [\n \"Arrow function with destructuring parameter.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"{{ items: Array, count: number }} param0 Destructured config.\"\n }\n ],\n \"returns\": [\n \"{Array} Processed item list.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 135,\n \"text\": \"return items.slice(0, count).map(i => i.toUpperCase());\"\n }\n ]\n },\n {\n \"start_line_number\": 141,\n \"end_line_number\": 141,\n \"line_range\": [\n 141,\n 141\n ],\n \"declaration_order_index\": 6,\n \"symbol_name\": \"MAX_SIZE\",\n \"qualified_name\": \"MAX_SIZE\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const MAX_SIZE = 100\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Constants ──────────────────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Constants ──────────────────────────────────────────────────────────\",\n \"@constant {number} MAX_SIZE Upper bound for buffer allocation.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 144,\n \"end_line_number\": 144,\n \"line_range\": [\n 144,\n 144\n ],\n \"declaration_order_index\": 7,\n \"symbol_name\": \"PLUGIN_KEY\",\n \"qualified_name\": \"PLUGIN_KEY\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const PLUGIN_KEY = Symbol('plugin')\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@constant {Symbol} PLUGIN_KEY Unique symbol for plugin registration.\",\n \"attached_comment_lines\": [\n \"@constant {Symbol} PLUGIN_KEY Unique symbol for plugin registration.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 153,\n \"end_line_number\": 155,\n \"line_range\": [\n 153,\n 155\n ],\n \"declaration_order_index\": 8,\n \"symbol_name\": \"MyWrapped\",\n \"qualified_name\": \"MyWrapped\",\n \"symbol_kind\": \"COMPONENT\",\n \"type_label\": \"COMPONENT\",\n \"signature_text\": \"const MyWrapped = React.memo(() =>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Memoized functional component demonstrating React.memo usage.\",\n \"doxygen\": {\n \"brief\": [\n \"Memoized functional component demonstrating React.memo usage.\"\n ],\n \"returns\": [\n \"{null} Renders nothing; serves as a parser test case.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 154,\n \"text\": \"return null;\"\n }\n ]\n },\n {\n \"start_line_number\": 164,\n \"end_line_number\": 170,\n \"line_range\": [\n 164,\n 170\n ],\n \"declaration_order_index\": 9,\n \"symbol_name\": \"idGenerator\",\n \"qualified_name\": \"idGenerator\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function* idGenerator()\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Infinite generator producing sequential integer IDs.\\n@yields {number} The next unique ID.\",\n \"doxygen\": {\n \"brief\": [\n \"Infinite generator producing sequential integer IDs.\\n@yields {number} The next unique ID.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 167,\n \"end_line_number\": 167,\n \"line_range\": [\n 167,\n 167\n ],\n \"text\": \"Yield incremented ID indefinitely\",\n \"text_lines\": [\n \"Yield incremented ID indefinitely\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 168,\n \"text\": \"yield id++;\"\n }\n ]\n },\n {\n \"start_line_number\": 179,\n \"end_line_number\": 183,\n \"line_range\": [\n 179,\n 183\n ],\n \"declaration_order_index\": 10,\n \"symbol_name\": \"rangeGenerator\",\n \"qualified_name\": \"rangeGenerator\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function* rangeGenerator(start, end)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Generator yielding integers in a bounded range.\",\n \"doxygen\": {\n \"brief\": [\n \"Generator yielding integers in a bounded range.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"start\",\n \"value_type\": \"number\",\n \"description\": \"Inclusive lower bound.\"\n },\n {\n \"direction\": \"unspecified\",\n \"text\": \"{number} end Exclusive upper bound.\\n@yields {number} Each integer from start to end-1.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 181,\n \"text\": \"yield i;\"\n }\n ]\n },\n {\n \"start_line_number\": 194,\n \"end_line_number\": 206,\n \"line_range\": [\n 194,\n 206\n ],\n \"declaration_order_index\": 11,\n \"symbol_name\": \"asyncDataStream\",\n \"qualified_name\": \"asyncDataStream\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"async function* asyncDataStream(url)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Asynchronously yield paginated API results.\",\n \"doxygen\": {\n \"brief\": [\n \"Asynchronously yield paginated API results.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"{string} url Base URL for pagination.\\n@yields {Object} Each page's parsed JSON data.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 200,\n \"end_line_number\": 200,\n \"line_range\": [\n 200,\n 200\n ],\n \"text\": \"No more pages — terminate stream\",\n \"text_lines\": [\n \"No more pages — terminate stream\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 201,\n \"text\": \"return;\"\n },\n {\n \"line_number\": 203,\n \"text\": \"yield data;\"\n }\n ]\n },\n {\n \"start_line_number\": 213,\n \"end_line_number\": 217,\n \"line_range\": [\n 213,\n 217\n ],\n \"declaration_order_index\": 12,\n \"symbol_name\": \"initResult\",\n \"qualified_name\": \"initResult\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"const initResult = (() =>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Immediately invoked function expression for module initialization.\",\n \"doxygen\": {\n \"brief\": [\n \"Immediately invoked function expression for module initialization.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 214,\n \"end_line_number\": 214,\n \"line_range\": [\n 214,\n 214\n ],\n \"text\": \"Self-contained initialization logic\",\n \"text_lines\": [\n \"Self-contained initialization logic\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 216,\n \"text\": \"return Object.freeze(config);\"\n }\n ]\n },\n {\n \"start_line_number\": 227,\n \"end_line_number\": 240,\n \"line_range\": [\n 227,\n 240\n ],\n \"declaration_order_index\": 13,\n \"symbol_name\": \"createProxy\",\n \"qualified_name\": \"createProxy\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function createProxy(target)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Create a logging proxy around any target object.\",\n \"doxygen\": {\n \"brief\": [\n \"Create a logging proxy around any target object.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"target\",\n \"value_type\": \"Object\",\n \"description\": \"The object to wrap with proxy traps.\"\n }\n ],\n \"returns\": [\n \"{Proxy} Proxied object that logs property access.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 230,\n \"end_line_number\": 230,\n \"line_range\": [\n 230,\n 230\n ],\n \"text\": \"Log every property access\",\n \"text_lines\": [\n \"Log every property access\"\n ]\n },\n {\n \"start_line_number\": 235,\n \"end_line_number\": 235,\n \"line_range\": [\n 235,\n 235\n ],\n \"text\": \"Log every property mutation\",\n \"text_lines\": [\n \"Log every property mutation\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 228,\n \"text\": \"return new Proxy(target, {\"\n },\n {\n \"line_number\": 232,\n \"text\": \"return Reflect.get(obj, prop);\"\n },\n {\n \"line_number\": 237,\n \"text\": \"return Reflect.set(obj, prop, value);\"\n }\n ]\n },\n {\n \"start_line_number\": 250,\n \"end_line_number\": 258,\n \"line_range\": [\n 250,\n 258\n ],\n \"declaration_order_index\": 14,\n \"symbol_name\": \"buildDynamic\",\n \"qualified_name\": \"buildDynamic\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function buildDynamic(prefix)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Build an object with computed property keys.\",\n \"doxygen\": {\n \"brief\": [\n \"Build an object with computed property keys.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"prefix\",\n \"value_type\": \"string\",\n \"description\": \"Key prefix for dynamic properties.\"\n }\n ],\n \"returns\": [\n \"{Object} Object with dynamically named properties.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 251,\n \"text\": \"return {\"\n },\n {\n \"line_number\": 255,\n \"text\": \"return hint === 'string' ? prefix : 0;\"\n }\n ]\n },\n {\n \"start_line_number\": 268,\n \"end_line_number\": 280,\n \"line_range\": [\n 268,\n 280\n ],\n \"declaration_order_index\": 15,\n \"symbol_name\": \"fetchAndProcess\",\n \"qualified_name\": \"fetchAndProcess\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function fetchAndProcess(url)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Demonstrate chained promise pattern with error recovery.\",\n \"doxygen\": {\n \"brief\": [\n \"Demonstrate chained promise pattern with error recovery.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"url\",\n \"value_type\": \"string\",\n \"description\": \"The resource URL to fetch.\"\n }\n ],\n \"returns\": [\n \"{Promise<Object>} Processed data or fallback on error.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 272,\n \"end_line_number\": 272,\n \"line_range\": [\n 272,\n 272\n ],\n \"text\": \"Transform the response payload\",\n \"text_lines\": [\n \"Transform the response payload\"\n ]\n },\n {\n \"start_line_number\": 276,\n \"end_line_number\": 276,\n \"line_range\": [\n 276,\n 276\n ],\n \"text\": \"Fallback on fetch failure\",\n \"text_lines\": [\n \"Fallback on fetch failure\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 269,\n \"text\": \"return fetch(url)\"\n },\n {\n \"line_number\": 273,\n \"text\": \"return { ...data, processed: true };\"\n },\n {\n \"line_number\": 278,\n \"text\": \"return { error: true, processed: false };\"\n }\n ]\n },\n {\n \"start_line_number\": 290,\n \"end_line_number\": 292,\n \"line_range\": [\n 290,\n 292\n ],\n \"declaration_order_index\": 16,\n \"symbol_name\": \"configureApp\",\n \"qualified_name\": \"configureApp\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function configureApp({ host = 'localhost', port = 3000, db: { url: dbUrl = 'sqlite://' } = {} } = {})\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Configure application with deep destructuring defaults.\",\n \"doxygen\": {\n \"brief\": [\n \"Configure application with deep destructuring defaults.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"options\",\n \"value_type\": \"Object\",\n \"description\": \"Configuration object with nested defaults.\"\n }\n ],\n \"returns\": [\n \"{Object} Resolved configuration.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 291,\n \"text\": \"return { host, port, dbUrl };\"\n }\n ]\n },\n {\n \"start_line_number\": 297,\n \"end_line_number\": 307,\n \"line_range\": [\n 297,\n 307\n ],\n \"declaration_order_index\": 17,\n \"symbol_name\": \"fs\",\n \"qualified_name\": \"fs\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"const fs = require('fs')\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Load the Node.js filesystem module via CommonJS. */\",\n \"doxygen\": {\n \"brief\": [\n \"Load the Node.js filesystem module via CommonJS. */\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 299,\n \"end_line_number\": 299,\n \"line_range\": [\n 299,\n 299\n ],\n \"text\": \"── WeakMap for private state ──────────────────────────────────────────\",\n \"text_lines\": [\n \"── WeakMap for private state ──────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 301,\n \"end_line_number\": 301,\n \"line_range\": [\n 301,\n 301\n ],\n \"text\": \"@brief WeakMap storing private state keyed by object reference.\",\n \"text_lines\": [\n \"@brief WeakMap storing private state keyed by object reference.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 310,\n \"end_line_number\": 312,\n \"line_range\": [\n 310,\n 312\n ],\n \"declaration_order_index\": 18,\n \"symbol_name\": \"setPrivate\",\n \"qualified_name\": \"setPrivate\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function setPrivate(obj, data)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Store private data associated with an object.\",\n \"doxygen\": {\n \"brief\": [\n \"Store private data associated with an object.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"obj\",\n \"value_type\": \"Object\",\n \"description\": \"The key object.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"data\",\n \"value_type\": \"*\",\n \"description\": \"The private data to associate.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 322,\n \"end_line_number\": 326,\n \"line_range\": [\n 322,\n 326\n ],\n \"declaration_order_index\": 19,\n \"symbol_name\": \"loadPlugin\",\n \"qualified_name\": \"loadPlugin\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"async function loadPlugin(name)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Dynamically import a module at runtime.\",\n \"doxygen\": {\n \"brief\": [\n \"Dynamically import a module at runtime.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"value_type\": \"string\",\n \"description\": \"Module specifier to import.\"\n }\n ],\n \"returns\": [\n \"{Promise<Module>} The loaded module namespace.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 323,\n \"end_line_number\": 323,\n \"line_range\": [\n 323,\n 323\n ],\n \"text\": \"Dynamic import for code-splitting\",\n \"text_lines\": [\n \"Dynamic import for code-splitting\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 325,\n \"text\": \"return mod;\"\n }\n ]\n },\n {\n \"start_line_number\": 332,\n \"end_line_number\": 332,\n \"line_range\": [\n 332,\n 332\n ],\n \"declaration_order_index\": 20,\n \"symbol_name\": \"ExtraService\",\n \"qualified_name\": \"ExtraService\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"export class ExtraService { constructor() { this.ready = true; } }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 333,\n \"end_line_number\": 333,\n \"line_range\": [\n 333,\n 333\n ],\n \"declaration_order_index\": 21,\n \"symbol_name\": \"HelperComponent\",\n \"qualified_name\": \"HelperComponent\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class HelperComponent { render() { return null; } }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 334,\n \"end_line_number\": 334,\n \"line_range\": [\n 334,\n 334\n ],\n \"declaration_order_index\": 22,\n \"symbol_name\": \"WidgetFactory\",\n \"qualified_name\": \"WidgetFactory\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"export default class WidgetFactory { create() { return {}; } }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 335,\n \"end_line_number\": 336,\n \"line_range\": [\n 335,\n 336\n ],\n \"declaration_order_index\": 23,\n \"symbol_name\": \"BoundComponent\",\n \"qualified_name\": \"BoundComponent\",\n \"symbol_kind\": \"COMPONENT\",\n \"type_label\": \"COMPONENT\",\n \"signature_text\": \"const BoundComponent = React.memo(() => null)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 336,\n \"end_line_number\": 336,\n \"line_range\": [\n 336,\n 336\n ],\n \"declaration_order_index\": 24,\n \"symbol_name\": \"ForwardedWidget\",\n \"qualified_name\": \"ForwardedWidget\",\n \"symbol_kind\": \"COMPONENT\",\n \"type_label\": \"COMPONENT\",\n \"signature_text\": \"const ForwardedWidget = React.forwardRef((_, ref) => ({ ref }))\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 337,\n \"end_line_number\": 353,\n \"line_range\": [\n 337,\n 353\n ],\n \"declaration_order_index\": 25,\n \"symbol_name\": \"LazyWidget\",\n \"qualified_name\": \"LazyWidget\",\n \"symbol_kind\": \"COMPONENT\",\n \"type_label\": \"COMPONENT\",\n \"signature_text\": \"const LazyWidget = React.lazy(() => import('./Widget'))\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 347,\n \"end_line_number\": 347,\n \"line_range\": [\n 347,\n 347\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 348,\n \"line_range\": [\n 348,\n 348\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 349,\n \"end_line_number\": 349,\n \"line_range\": [\n 349,\n 349\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 350,\n \"end_line_number\": 350,\n \"line_range\": [\n 350,\n 350\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 1.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 1.\"\n ]\n },\n {\n \"start_line_number\": 351,\n \"end_line_number\": 351,\n \"line_range\": [\n 351,\n 351\n ],\n \"text\": \"@param value Input value for helper construct 1.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 352,\n \"end_line_number\": 352,\n \"line_range\": [\n 352,\n 352\n ],\n \"text\": \"@return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@return Output value for helper construct 1.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 338,\n \"end_line_number\": 353,\n \"line_range\": [\n 338,\n 353\n ],\n \"declaration_order_index\": 26,\n \"symbol_name\": \"MemoPanel\",\n \"qualified_name\": \"MemoPanel\",\n \"symbol_kind\": \"COMPONENT\",\n \"type_label\": \"COMPONENT\",\n \"signature_text\": \"const MemoPanel = memo(() => null)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 347,\n \"end_line_number\": 347,\n \"line_range\": [\n 347,\n 347\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 348,\n \"line_range\": [\n 348,\n 348\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 349,\n \"end_line_number\": 349,\n \"line_range\": [\n 349,\n 349\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 350,\n \"end_line_number\": 350,\n \"line_range\": [\n 350,\n 350\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 1.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 1.\"\n ]\n },\n {\n \"start_line_number\": 351,\n \"end_line_number\": 351,\n \"line_range\": [\n 351,\n 351\n ],\n \"text\": \"@param value Input value for helper construct 1.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 352,\n \"end_line_number\": 352,\n \"line_range\": [\n 352,\n 352\n ],\n \"text\": \"@return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@return Output value for helper construct 1.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 339,\n \"end_line_number\": 339,\n \"line_range\": [\n 339,\n 339\n ],\n \"declaration_order_index\": 27,\n \"symbol_name\": \"API_TOKEN\",\n \"qualified_name\": \"API_TOKEN\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const API_TOKEN = 'tok'\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 340,\n \"end_line_number\": 340,\n \"line_range\": [\n 340,\n 340\n ],\n \"declaration_order_index\": 28,\n \"symbol_name\": \"CACHE_SIZE\",\n \"qualified_name\": \"CACHE_SIZE\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const CACHE_SIZE = 128\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 341,\n \"end_line_number\": 341,\n \"line_range\": [\n 341,\n 341\n ],\n \"declaration_order_index\": 29,\n \"symbol_name\": \"RETRY_LIMIT\",\n \"qualified_name\": \"RETRY_LIMIT\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const RETRY_LIMIT = 5\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 342,\n \"end_line_number\": 353,\n \"line_range\": [\n 342,\n 353\n ],\n \"declaration_order_index\": 30,\n \"symbol_name\": \"pathMod\",\n \"qualified_name\": \"pathMod\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"const pathMod = require('path')\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 347,\n \"end_line_number\": 347,\n \"line_range\": [\n 347,\n 347\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 348,\n \"line_range\": [\n 348,\n 348\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 349,\n \"end_line_number\": 349,\n \"line_range\": [\n 349,\n 349\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 350,\n \"end_line_number\": 350,\n \"line_range\": [\n 350,\n 350\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 1.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 1.\"\n ]\n },\n {\n \"start_line_number\": 351,\n \"end_line_number\": 351,\n \"line_range\": [\n 351,\n 351\n ],\n \"text\": \"@param value Input value for helper construct 1.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 352,\n \"end_line_number\": 352,\n \"line_range\": [\n 352,\n 352\n ],\n \"text\": \"@return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@return Output value for helper construct 1.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 343,\n \"end_line_number\": 353,\n \"line_range\": [\n 343,\n 353\n ],\n \"declaration_order_index\": 31,\n \"symbol_name\": \"cryptoMod\",\n \"qualified_name\": \"cryptoMod\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"const cryptoMod = require('crypto')\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 347,\n \"end_line_number\": 347,\n \"line_range\": [\n 347,\n 347\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 348,\n \"line_range\": [\n 348,\n 348\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 349,\n \"end_line_number\": 349,\n \"line_range\": [\n 349,\n 349\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 350,\n \"end_line_number\": 350,\n \"line_range\": [\n 350,\n 350\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 1.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 1.\"\n ]\n },\n {\n \"start_line_number\": 351,\n \"end_line_number\": 351,\n \"line_range\": [\n 351,\n 351\n ],\n \"text\": \"@param value Input value for helper construct 1.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 352,\n \"end_line_number\": 352,\n \"line_range\": [\n 352,\n 352\n ],\n \"text\": \"@return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@return Output value for helper construct 1.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 344,\n \"end_line_number\": 353,\n \"line_range\": [\n 344,\n 353\n ],\n \"declaration_order_index\": 32,\n \"symbol_name\": \"utilMod\",\n \"qualified_name\": \"utilMod\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"const utilMod = require('util')\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 347,\n \"end_line_number\": 347,\n \"line_range\": [\n 347,\n 347\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 348,\n \"line_range\": [\n 348,\n 348\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 349,\n \"end_line_number\": 349,\n \"line_range\": [\n 349,\n 349\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 350,\n \"end_line_number\": 350,\n \"line_range\": [\n 350,\n 350\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 1.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 1.\"\n ]\n },\n {\n \"start_line_number\": 351,\n \"end_line_number\": 351,\n \"line_range\": [\n 351,\n 351\n ],\n \"text\": \"@param value Input value for helper construct 1.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 352,\n \"end_line_number\": 352,\n \"line_range\": [\n 352,\n 352\n ],\n \"text\": \"@return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@return Output value for helper construct 1.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 345,\n \"end_line_number\": 353,\n \"line_range\": [\n 345,\n 353\n ],\n \"declaration_order_index\": 33,\n \"symbol_name\": \"osMod\",\n \"qualified_name\": \"osMod\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"const osMod = require('os')\",\n \"child_symbol_names\": [\n \"reqCoverJs1\"\n ],\n \"child_qualified_names\": [\n \"osMod.reqCoverJs1\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 347,\n \"end_line_number\": 347,\n \"line_range\": [\n 347,\n 347\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 348,\n \"line_range\": [\n 348,\n 348\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 349,\n \"end_line_number\": 349,\n \"line_range\": [\n 349,\n 349\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 350,\n \"end_line_number\": 350,\n \"line_range\": [\n 350,\n 350\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 1.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 1.\"\n ]\n },\n {\n \"start_line_number\": 351,\n \"end_line_number\": 351,\n \"line_range\": [\n 351,\n 351\n ],\n \"text\": \"@param value Input value for helper construct 1.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 352,\n \"end_line_number\": 352,\n \"line_range\": [\n 352,\n 352\n ],\n \"text\": \"@return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@return Output value for helper construct 1.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 353,\n \"end_line_number\": 353,\n \"line_range\": [\n 353,\n 353\n ],\n \"declaration_order_index\": 34,\n \"symbol_name\": \"reqCoverJs1\",\n \"qualified_name\": \"osMod.reqCoverJs1\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function reqCoverJs1(value) { return value + 1; }\",\n \"parent_symbol_name\": \"osMod\",\n \"parent_qualified_name\": \"osMod\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 1.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 1.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 360,\n \"end_line_number\": 360,\n \"line_range\": [\n 360,\n 360\n ],\n \"declaration_order_index\": 35,\n \"symbol_name\": \"reqCoverJs2\",\n \"qualified_name\": \"reqCoverJs2\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function reqCoverJs2(value) { return value + 2; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 2.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 2.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 2.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 2.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 2.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 367,\n \"end_line_number\": 367,\n \"line_range\": [\n 367,\n 367\n ],\n \"declaration_order_index\": 36,\n \"symbol_name\": \"reqCoverJs3\",\n \"qualified_name\": \"reqCoverJs3\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function reqCoverJs3(value) { return value + 3; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 3.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 3.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 3.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 3.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 3.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 374,\n \"end_line_number\": 374,\n \"line_range\": [\n 374,\n 374\n ],\n \"declaration_order_index\": 37,\n \"symbol_name\": \"reqCoverJs4\",\n \"qualified_name\": \"reqCoverJs4\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function reqCoverJs4(value) { return value + 4; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 4.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 4.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 4.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 4.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 4.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 381,\n \"end_line_number\": 381,\n \"line_range\": [\n 381,\n 381\n ],\n \"declaration_order_index\": 38,\n \"symbol_name\": \"reqCoverJs5\",\n \"qualified_name\": \"reqCoverJs5\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function reqCoverJs5(value) { return value + 5; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 5.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 5.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 5.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 5.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 5.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n }\n ],\n \"standalone_comments\": [\n {\n \"start_line_number\": 8,\n \"end_line_number\": 8,\n \"line_range\": [\n 8,\n 8\n ],\n \"text\": \"Single line comment\",\n \"text_lines\": [\n \"Single line comment\"\n ]\n },\n {\n \"start_line_number\": 9,\n \"end_line_number\": 10,\n \"line_range\": [\n 9,\n 10\n ],\n \"text\": \"Multi-line comment\",\n \"text_lines\": [\n \"Multi-line\",\n \"comment\"\n ]\n },\n {\n \"start_line_number\": 14,\n \"end_line_number\": 14,\n \"line_range\": [\n 14,\n 14\n ],\n \"text\": \"── Class with private fields and static blocks ───────────────────────\",\n \"text_lines\": [\n \"── Class with private fields and static blocks ───────────────────────\"\n ]\n },\n {\n \"start_line_number\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"text\": \"@brief Private instance counter, not accessible outside the class.\",\n \"text_lines\": [\n \"@brief Private instance counter, not accessible outside the class.\"\n ]\n },\n {\n \"start_line_number\": 24,\n \"end_line_number\": 24,\n \"line_range\": [\n 24,\n 24\n ],\n \"text\": \"@brief Static registry of all component instances.\",\n \"text_lines\": [\n \"@brief Static registry of all component instances.\"\n ]\n },\n {\n \"start_line_number\": 27,\n \"end_line_number\": 27,\n \"line_range\": [\n 27,\n 27\n ],\n \"text\": \"Static initialization block (ES2022)\",\n \"text_lines\": [\n \"Static initialization block (ES2022)\"\n ]\n },\n {\n \"start_line_number\": 32,\n \"end_line_number\": 35,\n \"line_range\": [\n 32,\n 35\n ],\n \"text\": \"@brief Construct a new component with an optional ID. @param {number} [id=0] Unique identifier for this instance.\",\n \"text_lines\": [\n \"@brief Construct a new component with an optional ID.\",\n \"@param {number} [id=0] Unique identifier for this instance.\"\n ]\n },\n {\n \"start_line_number\": 41,\n \"end_line_number\": 44,\n \"line_range\": [\n 41,\n 44\n ],\n \"text\": \"@brief Render the component output. @return {null} Placeholder render returning null.\",\n \"text_lines\": [\n \"@brief Render the component output.\",\n \"@return {null} Placeholder render returning null.\"\n ]\n },\n {\n \"start_line_number\": 46,\n \"end_line_number\": 46,\n \"line_range\": [\n 46,\n 46\n ],\n \"text\": \"Delegate to internal render pipeline\",\n \"text_lines\": [\n \"Delegate to internal render pipeline\"\n ]\n },\n {\n \"start_line_number\": 50,\n \"end_line_number\": 53,\n \"line_range\": [\n 50,\n 53\n ],\n \"text\": \"@brief Retrieve the private instance ID. @return {number} The instance identifier.\",\n \"text_lines\": [\n \"@brief Retrieve the private instance ID.\",\n \"@return {number} The instance identifier.\"\n ]\n },\n {\n \"start_line_number\": 58,\n \"end_line_number\": 62,\n \"line_range\": [\n 58,\n 62\n ],\n \"text\": \"@brief Check if an ID exists in the static registry. @param {number} id The ID to look up. @return {boolean} True if the ID is registered.\",\n \"text_lines\": [\n \"@brief Check if an ID exists in the static registry.\",\n \"@param {number} id The ID to look up.\",\n \"@return {boolean} True if the ID is registered.\"\n ]\n },\n {\n \"start_line_number\": 68,\n \"end_line_number\": 68,\n \"line_range\": [\n 68,\n 68\n ],\n \"text\": \"── Subclass with method override ──────────────────────────────────────\",\n \"text_lines\": [\n \"── Subclass with method override ──────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 76,\n \"end_line_number\": 79,\n \"line_range\": [\n 76,\n 79\n ],\n \"text\": \"@brief Override render to return a div element. @return {Object} A simple virtual DOM node.\",\n \"text_lines\": [\n \"@brief Override render to return a div element.\",\n \"@return {Object} A simple virtual DOM node.\"\n ]\n },\n {\n \"start_line_number\": 81,\n \"end_line_number\": 81,\n \"line_range\": [\n 81,\n 81\n ],\n \"text\": \"Call super for side effects then override output\",\n \"text_lines\": [\n \"Call super for side effects then override output\"\n ]\n },\n {\n \"start_line_number\": 86,\n \"end_line_number\": 89,\n \"line_range\": [\n 86,\n 89\n ],\n \"text\": \"@brief Lifecycle method called after mounting. @return {void}\",\n \"text_lines\": [\n \"@brief Lifecycle method called after mounting.\",\n \"@return {void}\"\n ]\n },\n {\n \"start_line_number\": 95,\n \"end_line_number\": 95,\n \"line_range\": [\n 95,\n 95\n ],\n \"text\": \"── Regular and arrow functions ────────────────────────────────────────\",\n \"text_lines\": [\n \"── Regular and arrow functions ────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 113,\n \"end_line_number\": 113,\n \"line_range\": [\n 113,\n 113\n ],\n \"text\": \"Await the fetch and return result\",\n \"text_lines\": [\n \"Await the fetch and return result\"\n ]\n },\n {\n \"start_line_number\": 123,\n \"end_line_number\": 123,\n \"line_range\": [\n 123,\n 123\n ],\n \"text\": \"Log and prevent default browser behavior\",\n \"text_lines\": [\n \"Log and prevent default browser behavior\"\n ]\n },\n {\n \"start_line_number\": 146,\n \"end_line_number\": 146,\n \"line_range\": [\n 146,\n 146\n ],\n \"text\": \"── React HOC wrapper ──────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── React HOC wrapper ──────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 157,\n \"end_line_number\": 157,\n \"line_range\": [\n 157,\n 157\n ],\n \"text\": \"── Generator function ─────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Generator function ─────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 167,\n \"end_line_number\": 167,\n \"line_range\": [\n 167,\n 167\n ],\n \"text\": \"Yield incremented ID indefinitely\",\n \"text_lines\": [\n \"Yield incremented ID indefinitely\"\n ]\n },\n {\n \"start_line_number\": 185,\n \"end_line_number\": 185,\n \"line_range\": [\n 185,\n 185\n ],\n \"text\": \"── Async generator ────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Async generator ────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 200,\n \"end_line_number\": 200,\n \"line_range\": [\n 200,\n 200\n ],\n \"text\": \"No more pages — terminate stream\",\n \"text_lines\": [\n \"No more pages — terminate stream\"\n ]\n },\n {\n \"start_line_number\": 208,\n \"end_line_number\": 208,\n \"line_range\": [\n 208,\n 208\n ],\n \"text\": \"── IIFE for isolated scope ────────────────────────────────────────────\",\n \"text_lines\": [\n \"── IIFE for isolated scope ────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 214,\n \"end_line_number\": 214,\n \"line_range\": [\n 214,\n 214\n ],\n \"text\": \"Self-contained initialization logic\",\n \"text_lines\": [\n \"Self-contained initialization logic\"\n ]\n },\n {\n \"start_line_number\": 219,\n \"end_line_number\": 219,\n \"line_range\": [\n 219,\n 219\n ],\n \"text\": \"── Proxy ──────────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Proxy ──────────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 230,\n \"end_line_number\": 230,\n \"line_range\": [\n 230,\n 230\n ],\n \"text\": \"Log every property access\",\n \"text_lines\": [\n \"Log every property access\"\n ]\n },\n {\n \"start_line_number\": 235,\n \"end_line_number\": 235,\n \"line_range\": [\n 235,\n 235\n ],\n \"text\": \"Log every property mutation\",\n \"text_lines\": [\n \"Log every property mutation\"\n ]\n },\n {\n \"start_line_number\": 242,\n \"end_line_number\": 242,\n \"line_range\": [\n 242,\n 242\n ],\n \"text\": \"── Computed property names ────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Computed property names ────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 260,\n \"end_line_number\": 260,\n \"line_range\": [\n 260,\n 260\n ],\n \"text\": \"── Promise chain ──────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Promise chain ──────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 272,\n \"end_line_number\": 272,\n \"line_range\": [\n 272,\n 272\n ],\n \"text\": \"Transform the response payload\",\n \"text_lines\": [\n \"Transform the response payload\"\n ]\n },\n {\n \"start_line_number\": 276,\n \"end_line_number\": 276,\n \"line_range\": [\n 276,\n 276\n ],\n \"text\": \"Fallback on fetch failure\",\n \"text_lines\": [\n \"Fallback on fetch failure\"\n ]\n },\n {\n \"start_line_number\": 282,\n \"end_line_number\": 282,\n \"line_range\": [\n 282,\n 282\n ],\n \"text\": \"── Destructuring and defaults ─────────────────────────────────────────\",\n \"text_lines\": [\n \"── Destructuring and defaults ─────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 299,\n \"end_line_number\": 299,\n \"line_range\": [\n 299,\n 299\n ],\n \"text\": \"── WeakMap for private state ──────────────────────────────────────────\",\n \"text_lines\": [\n \"── WeakMap for private state ──────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 301,\n \"end_line_number\": 301,\n \"line_range\": [\n 301,\n 301\n ],\n \"text\": \"@brief WeakMap storing private state keyed by object reference.\",\n \"text_lines\": [\n \"@brief WeakMap storing private state keyed by object reference.\"\n ]\n },\n {\n \"start_line_number\": 314,\n \"end_line_number\": 314,\n \"line_range\": [\n 314,\n 314\n ],\n \"text\": \"── Dynamic import ─────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Dynamic import ─────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 323,\n \"end_line_number\": 323,\n \"line_range\": [\n 323,\n 323\n ],\n \"text\": \"Dynamic import for code-splitting\",\n \"text_lines\": [\n \"Dynamic import for code-splitting\"\n ]\n },\n {\n \"start_line_number\": 328,\n \"end_line_number\": 328,\n \"line_range\": [\n 328,\n 328\n ],\n \"text\": \"coverage extension block\",\n \"text_lines\": [\n \"coverage extension block\"\n ]\n },\n {\n \"start_line_number\": 347,\n \"end_line_number\": 347,\n \"line_range\": [\n 347,\n 347\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 348,\n \"line_range\": [\n 348,\n 348\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 349,\n \"end_line_number\": 349,\n \"line_range\": [\n 349,\n 349\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 355,\n \"end_line_number\": 355,\n \"line_range\": [\n 355,\n 355\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 2\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 2\"\n ]\n },\n {\n \"start_line_number\": 356,\n \"end_line_number\": 356,\n \"line_range\": [\n 356,\n 356\n ],\n \"text\": \"@brief Coverage helper construct 2.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 362,\n \"end_line_number\": 362,\n \"line_range\": [\n 362,\n 362\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 3\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 3\"\n ]\n },\n {\n \"start_line_number\": 363,\n \"end_line_number\": 363,\n \"line_range\": [\n 363,\n 363\n ],\n \"text\": \"@brief Coverage helper construct 3.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 369,\n \"end_line_number\": 369,\n \"line_range\": [\n 369,\n 369\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 4\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 4\"\n ]\n },\n {\n \"start_line_number\": 370,\n \"end_line_number\": 370,\n \"line_range\": [\n 370,\n 370\n ],\n \"text\": \"@brief Coverage helper construct 4.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 376,\n \"end_line_number\": 376,\n \"line_range\": [\n 376,\n 376\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 5\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 5\"\n ]\n },\n {\n \"start_line_number\": 377,\n \"end_line_number\": 377,\n \"line_range\": [\n 377,\n 377\n ],\n \"text\": \"@brief Coverage helper construct 5.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 383,\n \"end_line_number\": 383,\n \"line_range\": [\n 383,\n 383\n ],\n \"text\": \"REQ-COVER-SRS-231 END\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 END\"\n ]\n }\n ]\n }\n ]\n}\n",
4
+ "stderr": ""
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "code": 0,
3
+ "stdout": "{\n \"request\": {\n \"tool_name\": \"files-references\",\n \"scope\": \"explicit-files\",\n \"base_dir_path\": \"<ROOT>\",\n \"source_directory_count\": 0,\n \"source_directory_paths\": [],\n \"requested_file_count\": 1,\n \"requested_input_paths\": [\n \"tests/fixtures/fixture_kotlin.kt\"\n ],\n \"requested_canonical_paths\": [\n \"tests/fixtures/fixture_kotlin.kt\"\n ]\n },\n \"summary\": {\n \"processable_file_count\": 1,\n \"analyzed_file_count\": 1,\n \"error_file_count\": 0,\n \"skipped_file_count\": 0,\n \"total_symbol_count\": 58,\n \"total_import_count\": 5,\n \"total_comment_count\": 77,\n \"total_standalone_comment_count\": 32,\n \"total_doxygen_field_count\": 124,\n \"symbol_kind_counts\": {\n \"CLASS\": 9,\n \"CONSTANT\": 9,\n \"ENUM\": 5,\n \"FUNCTION\": 20,\n \"INTERFACE\": 5,\n \"MODULE\": 5,\n \"VARIABLE\": 5\n }\n },\n \"repository\": {\n \"root_directory_path\": \"<ROOT>\",\n \"source_directory_paths\": [],\n \"file_count\": 1,\n \"file_canonical_paths\": [\n \"tests/fixtures/fixture_kotlin.kt\"\n ],\n \"directory_tree\": {\n \"node_name\": \".\",\n \"relative_path\": \".\",\n \"node_kind\": \"directory\",\n \"child_count\": 1,\n \"children\": [\n {\n \"node_name\": \"tests\",\n \"relative_path\": \"tests\",\n \"node_kind\": \"directory\",\n \"child_count\": 1,\n \"children\": [\n {\n \"node_name\": \"fixtures\",\n \"relative_path\": \"tests/fixtures\",\n \"node_kind\": \"directory\",\n \"child_count\": 1,\n \"children\": [\n {\n \"node_name\": \"fixture_kotlin.kt\",\n \"relative_path\": \"tests/fixtures/fixture_kotlin.kt\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n }\n ]\n }\n ]\n }\n ]\n }\n },\n \"files\": [\n {\n \"start_line_number\": 1,\n \"end_line_number\": 451,\n \"line_range\": [\n 1,\n 451\n ],\n \"request_index\": 0,\n \"input_path\": \"tests/fixtures/fixture_kotlin.kt\",\n \"canonical_path\": \"tests/fixtures/fixture_kotlin.kt\",\n \"absolute_path\": \"<ROOT>/tests/fixtures/fixture_kotlin.kt\",\n \"file_name\": \"fixture_kotlin.kt\",\n \"file_extension\": \".kt\",\n \"language_id\": \"kotlin\",\n \"language_name\": \"Kotlin\",\n \"status\": \"analyzed\",\n \"exists\": true,\n \"is_file\": true,\n \"import_count\": 5,\n \"symbol_count\": 58,\n \"comment_count\": 77,\n \"standalone_comment_count\": 32,\n \"doxygen_field_count\": 124,\n \"file_doxygen\": {\n \"brief\": [\n \"Comprehensive Kotlin test fixture for parser validation.\"\n ],\n \"details\": [\n \"Covers extension functions, inline/reified generics, DSL builders,\\ndelegation, coroutine scope, destructuring, sealed interfaces,\\nvalue classes, operator overloading, and lateinit.\"\n ]\n },\n \"imports\": [\n {\n \"start_line_number\": 11,\n \"end_line_number\": 11,\n \"line_range\": [\n 11,\n 11\n ],\n \"import_name\": \"kotlin.collections.List\",\n \"statement_text\": \"import kotlin.collections.List\"\n },\n {\n \"start_line_number\": 12,\n \"end_line_number\": 12,\n \"line_range\": [\n 12,\n 12\n ],\n \"import_name\": \"kotlinx.coroutines.flow.Flow\",\n \"statement_text\": \"import kotlinx.coroutines.flow.Flow\"\n },\n {\n \"start_line_number\": 13,\n \"end_line_number\": 13,\n \"line_range\": [\n 13,\n 13\n ],\n \"import_name\": \"kotlinx.coroutines.flow.flow\",\n \"statement_text\": \"import kotlinx.coroutines.flow.flow\"\n },\n {\n \"start_line_number\": 388,\n \"end_line_number\": 388,\n \"line_range\": [\n 388,\n 388\n ],\n \"import_name\": \"kotlin.math.max\",\n \"statement_text\": \"import kotlin.math.max\"\n },\n {\n \"start_line_number\": 389,\n \"end_line_number\": 389,\n \"line_range\": [\n 389,\n 389\n ],\n \"import_name\": \"kotlin.math.min\",\n \"statement_text\": \"import kotlin.math.min\"\n }\n ],\n \"symbols\": [\n {\n \"start_line_number\": 19,\n \"end_line_number\": 61,\n \"line_range\": [\n 19,\n 61\n ],\n \"declaration_order_index\": 0,\n \"symbol_name\": \"User\",\n \"qualified_name\": \"User\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"data class User(val name: String, val age: Int = 0)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"decorator_text\": \"@Deprecated(\\\"Use UserV2 instead\\\", replaceWith = ReplaceWith(\\\"UserV2\\\"))\",\n \"attached_comment_summary_text\": \"@brief Marks a class or function as deprecated with migration path.\",\n \"attached_comment_lines\": [\n \"@brief Marks a class or function as deprecated with migration path.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"text\": \"── Sealed class hierarchy ─────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Sealed class hierarchy ─────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 23,\n \"end_line_number\": 27,\n \"line_range\": [\n 23,\n 27\n ],\n \"text\": \"@class Result @brief Sealed class representing success/failure outcomes. @tparam T The success value type.\",\n \"text_lines\": [\n \"@class Result @brief Sealed class representing success/failure outcomes. @tparam T The success value type.\"\n ]\n },\n {\n \"start_line_number\": 29,\n \"end_line_number\": 33,\n \"line_range\": [\n 29,\n 33\n ],\n \"text\": \"@class Success @brief Successful outcome holding a value. @param value The result data.\",\n \"text_lines\": [\n \"@class Success @brief Successful outcome holding a value. @param value The result data.\"\n ]\n },\n {\n \"start_line_number\": 36,\n \"end_line_number\": 41,\n \"line_range\": [\n 36,\n 41\n ],\n \"text\": \"@class Error @brief Failed outcome holding an error message. @param message Description of the failure. @param cause Optional underlying exception.\",\n \"text_lines\": [\n \"@class Error @brief Failed outcome holding an error message. @param message Description of the failure. @param cause Optional underlying exception.\"\n ]\n },\n {\n \"start_line_number\": 44,\n \"end_line_number\": 47,\n \"line_range\": [\n 44,\n 47\n ],\n \"text\": \"@object Loading @brief Singleton state representing an in-progress operation.\",\n \"text_lines\": [\n \"@object Loading @brief Singleton state representing an in-progress operation.\"\n ]\n },\n {\n \"start_line_number\": 50,\n \"end_line_number\": 55,\n \"line_range\": [\n 50,\n 55\n ],\n \"text\": \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\",\n \"text_lines\": [\n \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 28,\n \"end_line_number\": 61,\n \"line_range\": [\n 28,\n 61\n ],\n \"declaration_order_index\": 1,\n \"symbol_name\": \"Result\",\n \"qualified_name\": \"Result\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"sealed class Result<out T>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Sealed class representing success/failure outcomes.\\n@tparam T The success value type.\",\n \"doxygen\": {\n \"brief\": [\n \"Sealed class representing success/failure outcomes.\\n@tparam T The success value type.\",\n \"Successful outcome holding a value.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"The result data.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 29,\n \"end_line_number\": 33,\n \"line_range\": [\n 29,\n 33\n ],\n \"text\": \"@class Success @brief Successful outcome holding a value. @param value The result data.\",\n \"text_lines\": [\n \"@class Success @brief Successful outcome holding a value. @param value The result data.\"\n ]\n },\n {\n \"start_line_number\": 36,\n \"end_line_number\": 41,\n \"line_range\": [\n 36,\n 41\n ],\n \"text\": \"@class Error @brief Failed outcome holding an error message. @param message Description of the failure. @param cause Optional underlying exception.\",\n \"text_lines\": [\n \"@class Error @brief Failed outcome holding an error message. @param message Description of the failure. @param cause Optional underlying exception.\"\n ]\n },\n {\n \"start_line_number\": 44,\n \"end_line_number\": 47,\n \"line_range\": [\n 44,\n 47\n ],\n \"text\": \"@object Loading @brief Singleton state representing an in-progress operation.\",\n \"text_lines\": [\n \"@object Loading @brief Singleton state representing an in-progress operation.\"\n ]\n },\n {\n \"start_line_number\": 50,\n \"end_line_number\": 55,\n \"line_range\": [\n 50,\n 55\n ],\n \"text\": \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\",\n \"text_lines\": [\n \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 34,\n \"end_line_number\": 60,\n \"line_range\": [\n 34,\n 60\n ],\n \"declaration_order_index\": 2,\n \"symbol_name\": \"Success\",\n \"qualified_name\": \"Success\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"data class Success<T>(val value: T) : Result<T>()\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Successful outcome holding a value.\",\n \"doxygen\": {\n \"brief\": [\n \"Successful outcome holding a value.\",\n \"Failed outcome holding an error message.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"The result data.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"message\",\n \"description\": \"Description of the failure.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"cause\",\n \"description\": \"Optional underlying exception.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 36,\n \"end_line_number\": 41,\n \"line_range\": [\n 36,\n 41\n ],\n \"text\": \"@class Error @brief Failed outcome holding an error message. @param message Description of the failure. @param cause Optional underlying exception.\",\n \"text_lines\": [\n \"@class Error @brief Failed outcome holding an error message. @param message Description of the failure. @param cause Optional underlying exception.\"\n ]\n },\n {\n \"start_line_number\": 44,\n \"end_line_number\": 47,\n \"line_range\": [\n 44,\n 47\n ],\n \"text\": \"@object Loading @brief Singleton state representing an in-progress operation.\",\n \"text_lines\": [\n \"@object Loading @brief Singleton state representing an in-progress operation.\"\n ]\n },\n {\n \"start_line_number\": 50,\n \"end_line_number\": 55,\n \"line_range\": [\n 50,\n 55\n ],\n \"text\": \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\",\n \"text_lines\": [\n \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 42,\n \"end_line_number\": 60,\n \"line_range\": [\n 42,\n 60\n ],\n \"declaration_order_index\": 3,\n \"symbol_name\": \"Error\",\n \"qualified_name\": \"Error\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"data class Error(val message: String, val cause: Throwable? = null) : Result<Nothing>()\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"inherits_text\": \"Result<Nothing>()\",\n \"attached_comment_summary_text\": \"Failed outcome holding an error message.\",\n \"doxygen\": {\n \"brief\": [\n \"Failed outcome holding an error message.\",\n \"Singleton state representing an in-progress operation.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"message\",\n \"description\": \"Description of the failure.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"cause\",\n \"description\": \"Optional underlying exception.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 44,\n \"end_line_number\": 47,\n \"line_range\": [\n 44,\n 47\n ],\n \"text\": \"@object Loading @brief Singleton state representing an in-progress operation.\",\n \"text_lines\": [\n \"@object Loading @brief Singleton state representing an in-progress operation.\"\n ]\n },\n {\n \"start_line_number\": 50,\n \"end_line_number\": 55,\n \"line_range\": [\n 50,\n 55\n ],\n \"text\": \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\",\n \"text_lines\": [\n \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 48,\n \"end_line_number\": 60,\n \"line_range\": [\n 48,\n 60\n ],\n \"declaration_order_index\": 4,\n \"symbol_name\": \"Loading\",\n \"qualified_name\": \"Loading\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"object Loading : Result<Nothing>()\",\n \"child_symbol_names\": [\n \"map\"\n ],\n \"child_qualified_names\": [\n \"Loading.map\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Singleton state representing an in-progress operation.\",\n \"doxygen\": {\n \"brief\": [\n \"Singleton state representing an in-progress operation.\",\n \"Map the success value using a transform function. @tparam R The target type after transformation.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"transform\",\n \"description\": \"Function converting T to R.\"\n }\n ],\n \"returns\": [\n \"Transformed Result or original error/loading state.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 50,\n \"end_line_number\": 55,\n \"line_range\": [\n 50,\n 55\n ],\n \"text\": \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\",\n \"text_lines\": [\n \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 56,\n \"end_line_number\": 60,\n \"line_range\": [\n 56,\n 60\n ],\n \"declaration_order_index\": 5,\n \"symbol_name\": \"map\",\n \"qualified_name\": \"Loading.map\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun <R> map(transform: (T) -> R): Result<R> = when (this)\",\n \"parent_symbol_name\": \"Loading\",\n \"parent_qualified_name\": \"Loading\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Map the success value using a transform function.\\n@tparam R The target type after transformation.\",\n \"doxygen\": {\n \"brief\": [\n \"Map the success value using a transform function.\\n@tparam R The target type after transformation.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"transform\",\n \"description\": \"Function converting T to R.\"\n }\n ],\n \"returns\": [\n \"Transformed Result or original error/loading state.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 70,\n \"end_line_number\": 90,\n \"line_range\": [\n 70,\n 90\n ],\n \"declaration_order_index\": 6,\n \"symbol_name\": \"Repository\",\n \"qualified_name\": \"Repository\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface Repository<T>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Generic CRUD repository interface.\\n@tparam T Entity type managed by this repository.\",\n \"doxygen\": {\n \"brief\": [\n \"Generic CRUD repository interface.\\n@tparam T Entity type managed by this repository.\",\n \"Find an entity by its unique identifier.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"id\",\n \"description\": \"Entity ID.\"\n }\n ],\n \"returns\": [\n \"The entity or null if not found.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 71,\n \"end_line_number\": 75,\n \"line_range\": [\n 71,\n 75\n ],\n \"text\": \"@brief Find an entity by its unique identifier. @param id Entity ID. @return The entity or null if not found.\",\n \"text_lines\": [\n \"@brief Find an entity by its unique identifier. @param id Entity ID. @return The entity or null if not found.\"\n ]\n },\n {\n \"start_line_number\": 78,\n \"end_line_number\": 82,\n \"line_range\": [\n 78,\n 82\n ],\n \"text\": \"@brief Persist an entity. @param entity The entity to save. @return True if save succeeded.\",\n \"text_lines\": [\n \"@brief Persist an entity. @param entity The entity to save. @return True if save succeeded.\"\n ]\n },\n {\n \"start_line_number\": 85,\n \"end_line_number\": 88,\n \"line_range\": [\n 85,\n 88\n ],\n \"text\": \"@brief Retrieve all entities as a Flow stream. @return Flow emitting all stored entities.\",\n \"text_lines\": [\n \"@brief Retrieve all entities as a Flow stream. @return Flow emitting all stored entities.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 76,\n \"end_line_number\": 96,\n \"line_range\": [\n 76,\n 96\n ],\n \"declaration_order_index\": 7,\n \"symbol_name\": \"findById\",\n \"qualified_name\": \"findById\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun findById(id: Int): T?\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Find an entity by its unique identifier.\",\n \"doxygen\": {\n \"brief\": [\n \"Find an entity by its unique identifier.\",\n \"Persist an entity.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"id\",\n \"description\": \"Entity ID.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"entity\",\n \"description\": \"The entity to save.\"\n }\n ],\n \"returns\": [\n \"The entity or null if not found.\",\n \"True if save succeeded.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 78,\n \"end_line_number\": 82,\n \"line_range\": [\n 78,\n 82\n ],\n \"text\": \"@brief Persist an entity. @param entity The entity to save. @return True if save succeeded.\",\n \"text_lines\": [\n \"@brief Persist an entity. @param entity The entity to save. @return True if save succeeded.\"\n ]\n },\n {\n \"start_line_number\": 85,\n \"end_line_number\": 88,\n \"line_range\": [\n 85,\n 88\n ],\n \"text\": \"@brief Retrieve all entities as a Flow stream. @return Flow emitting all stored entities.\",\n \"text_lines\": [\n \"@brief Retrieve all entities as a Flow stream. @return Flow emitting all stored entities.\"\n ]\n },\n {\n \"start_line_number\": 92,\n \"end_line_number\": 95,\n \"line_range\": [\n 92,\n 95\n ],\n \"text\": \"@interface Identifiable @brief Sealed interface requiring an ID property.\",\n \"text_lines\": [\n \"@interface Identifiable @brief Sealed interface requiring an ID property.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 83,\n \"end_line_number\": 96,\n \"line_range\": [\n 83,\n 96\n ],\n \"declaration_order_index\": 8,\n \"symbol_name\": \"save\",\n \"qualified_name\": \"save\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun save(entity: T): Boolean\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Persist an entity.\",\n \"doxygen\": {\n \"brief\": [\n \"Persist an entity.\",\n \"Retrieve all entities as a Flow stream.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"entity\",\n \"description\": \"The entity to save.\"\n }\n ],\n \"returns\": [\n \"True if save succeeded.\",\n \"Flow emitting all stored entities.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 85,\n \"end_line_number\": 88,\n \"line_range\": [\n 85,\n 88\n ],\n \"text\": \"@brief Retrieve all entities as a Flow stream. @return Flow emitting all stored entities.\",\n \"text_lines\": [\n \"@brief Retrieve all entities as a Flow stream. @return Flow emitting all stored entities.\"\n ]\n },\n {\n \"start_line_number\": 92,\n \"end_line_number\": 95,\n \"line_range\": [\n 92,\n 95\n ],\n \"text\": \"@interface Identifiable @brief Sealed interface requiring an ID property.\",\n \"text_lines\": [\n \"@interface Identifiable @brief Sealed interface requiring an ID property.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 89,\n \"end_line_number\": 96,\n \"line_range\": [\n 89,\n 96\n ],\n \"declaration_order_index\": 9,\n \"symbol_name\": \"findAll\",\n \"qualified_name\": \"findAll\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun findAll(): Flow<T>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Retrieve all entities as a Flow stream.\",\n \"doxygen\": {\n \"brief\": [\n \"Retrieve all entities as a Flow stream.\",\n \"Sealed interface requiring an ID property.\"\n ],\n \"returns\": [\n \"Flow emitting all stored entities.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 92,\n \"end_line_number\": 95,\n \"line_range\": [\n 92,\n 95\n ],\n \"text\": \"@interface Identifiable @brief Sealed interface requiring an ID property.\",\n \"text_lines\": [\n \"@interface Identifiable @brief Sealed interface requiring an ID property.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 98,\n \"end_line_number\": 98,\n \"line_range\": [\n 98,\n 98\n ],\n \"declaration_order_index\": 10,\n \"symbol_name\": \"id\",\n \"qualified_name\": \"id\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val id: Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Unique entity identifier. */\",\n \"doxygen\": {\n \"brief\": [\n \"Unique entity identifier. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 107,\n \"end_line_number\": 123,\n \"line_range\": [\n 107,\n 123\n ],\n \"declaration_order_index\": 11,\n \"symbol_name\": \"Color\",\n \"qualified_name\": \"Color\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum class Color(val hex: String)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Color enum with hex value property and companion factory.\",\n \"doxygen\": {\n \"brief\": [\n \"Color enum with hex value property and companion factory.\",\n \"Red color channel.\",\n \"Green color channel.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 108,\n \"end_line_number\": 108,\n \"line_range\": [\n 108,\n 108\n ],\n \"text\": \"@brief Red color channel.\",\n \"text_lines\": [\n \"@brief Red color channel.\"\n ]\n },\n {\n \"start_line_number\": 110,\n \"end_line_number\": 110,\n \"line_range\": [\n 110,\n 110\n ],\n \"text\": \"@brief Green color channel.\",\n \"text_lines\": [\n \"@brief Green color channel.\"\n ]\n },\n {\n \"start_line_number\": 112,\n \"end_line_number\": 112,\n \"line_range\": [\n 112,\n 112\n ],\n \"text\": \"@brief Blue color channel.\",\n \"text_lines\": [\n \"@brief Blue color channel.\"\n ]\n },\n {\n \"start_line_number\": 116,\n \"end_line_number\": 120,\n \"line_range\": [\n 116,\n 120\n ],\n \"text\": \"@brief Parse a color from its hex string. @param hex Hex color code including '#' prefix. @return Matching Color or null.\",\n \"text_lines\": [\n \"@brief Parse a color from its hex string. @param hex Hex color code including '#' prefix. @return Matching Color or null.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 115,\n \"end_line_number\": 122,\n \"line_range\": [\n 115,\n 122\n ],\n \"declaration_order_index\": 12,\n \"symbol_name\": \"companion object\",\n \"qualified_name\": \"companion object\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"companion object\",\n \"child_symbol_names\": [\n \"fromHex\"\n ],\n \"child_qualified_names\": [\n \"companion object.fromHex\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Blue color channel. */\",\n \"doxygen\": {\n \"brief\": [\n \"Blue color channel. */\",\n \"Parse a color from its hex string.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"hex\",\n \"description\": \"Hex color code including '#' prefix.\"\n }\n ],\n \"returns\": [\n \"Matching Color or null.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 116,\n \"end_line_number\": 120,\n \"line_range\": [\n 116,\n 120\n ],\n \"text\": \"@brief Parse a color from its hex string. @param hex Hex color code including '#' prefix. @return Matching Color or null.\",\n \"text_lines\": [\n \"@brief Parse a color from its hex string. @param hex Hex color code including '#' prefix. @return Matching Color or null.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 121,\n \"end_line_number\": 121,\n \"line_range\": [\n 121,\n 121\n ],\n \"declaration_order_index\": 13,\n \"symbol_name\": \"fromHex\",\n \"qualified_name\": \"companion object.fromHex\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun fromHex(hex: String): Color? = values().find { it.hex == hex }\",\n \"parent_symbol_name\": \"companion object\",\n \"parent_qualified_name\": \"companion object\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Parse a color from its hex string.\",\n \"doxygen\": {\n \"brief\": [\n \"Parse a color from its hex string.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"hex\",\n \"description\": \"Hex color code including '#' prefix.\"\n }\n ],\n \"returns\": [\n \"Matching Color or null.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 155,\n \"line_range\": [\n 134,\n 155\n ],\n \"declaration_order_index\": 14,\n \"symbol_name\": \"Entity\",\n \"qualified_name\": \"Entity\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"data class Entity(\",\n \"child_symbol_names\": [\n \"name\",\n \"status\",\n \"domain\"\n ],\n \"child_qualified_names\": [\n \"Entity.name\",\n \"Entity.status\",\n \"Entity.domain\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Data class combining Identifiable with named properties.\",\n \"doxygen\": {\n \"brief\": [\n \"Data class combining Identifiable with named properties.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"id\",\n \"description\": \"Unique identifier.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"description\": \"Entity display name.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"status\",\n \"description\": \"Current lifecycle status.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 140,\n \"end_line_number\": 140,\n \"line_range\": [\n 140,\n 140\n ],\n \"text\": \"── Value class (inline class) ─────────────────────────────────────────\",\n \"text_lines\": [\n \"── Value class (inline class) ─────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 142,\n \"end_line_number\": 146,\n \"line_range\": [\n 142,\n 146\n ],\n \"text\": \"@class EmailAddress @brief Inline value class wrapping a validated email string. @param value The raw email address string.\",\n \"text_lines\": [\n \"@class EmailAddress @brief Inline value class wrapping a validated email string. @param value The raw email address string.\"\n ]\n },\n {\n \"start_line_number\": 153,\n \"end_line_number\": 153,\n \"line_range\": [\n 153,\n 153\n ],\n \"text\": \"@brief Extract the domain part of the email.\",\n \"text_lines\": [\n \"@brief Extract the domain part of the email.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 136,\n \"end_line_number\": 136,\n \"line_range\": [\n 136,\n 136\n ],\n \"declaration_order_index\": 15,\n \"symbol_name\": \"name\",\n \"qualified_name\": \"Entity.name\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val name: String,\",\n \"parent_symbol_name\": \"Entity\",\n \"parent_qualified_name\": \"Entity\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 137,\n \"end_line_number\": 137,\n \"line_range\": [\n 137,\n 137\n ],\n \"declaration_order_index\": 16,\n \"symbol_name\": \"status\",\n \"qualified_name\": \"Entity.status\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val status: String = \\\"active\\\",\",\n \"parent_symbol_name\": \"Entity\",\n \"parent_qualified_name\": \"Entity\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 154,\n \"end_line_number\": 154,\n \"line_range\": [\n 154,\n 154\n ],\n \"declaration_order_index\": 17,\n \"symbol_name\": \"domain\",\n \"qualified_name\": \"Entity.domain\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val domain: String get() = value.substringAfter('@')\",\n \"parent_symbol_name\": \"Entity\",\n \"parent_qualified_name\": \"Entity\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Extract the domain part of the email. */\",\n \"doxygen\": {\n \"brief\": [\n \"Extract the domain part of the email. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 165,\n \"end_line_number\": 167,\n \"line_range\": [\n 165,\n 167\n ],\n \"declaration_order_index\": 18,\n \"symbol_name\": \"greet\",\n \"qualified_name\": \"greet\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun greet(name: String): String\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Greet a person by name.\",\n \"doxygen\": {\n \"brief\": [\n \"Greet a person by name.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"description\": \"The person's name.\"\n }\n ],\n \"returns\": [\n \"Greeting message string.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 166,\n \"text\": \"return \\\"Hello $name\\\"\"\n }\n ]\n },\n {\n \"start_line_number\": 174,\n \"end_line_number\": 177,\n \"line_range\": [\n 174,\n 177\n ],\n \"declaration_order_index\": 19,\n \"symbol_name\": \"fetchData\",\n \"qualified_name\": \"fetchData\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"suspend fun fetchData(): String\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Suspend function simulating async data retrieval.\",\n \"doxygen\": {\n \"brief\": [\n \"Suspend function simulating async data retrieval.\"\n ],\n \"returns\": [\n \"Retrieved data as a string.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 175,\n \"end_line_number\": 175,\n \"line_range\": [\n 175,\n 175\n ],\n \"text\": \"Simulate network delay\",\n \"text_lines\": [\n \"Simulate network delay\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 176,\n \"text\": \"return \\\"data\\\"\"\n }\n ]\n },\n {\n \"start_line_number\": 186,\n \"end_line_number\": 188,\n \"line_range\": [\n 186,\n 188\n ],\n \"declaration_order_index\": 20,\n \"symbol_name\": \"processItems\",\n \"qualified_name\": \"processItems\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun processItems(items: List<String>, transform: (String) -> String): List<String>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Higher-order function with trailing lambda syntax.\",\n \"doxygen\": {\n \"brief\": [\n \"Higher-order function with trailing lambda syntax.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"items\",\n \"description\": \"List of strings to process.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"transform\",\n \"description\": \"Function applied to each item.\"\n }\n ],\n \"returns\": [\n \"List of transformed results.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 187,\n \"text\": \"return items.map(transform)\"\n }\n ]\n },\n {\n \"start_line_number\": 205,\n \"end_line_number\": 205,\n \"line_range\": [\n 205,\n 205\n ],\n \"declaration_order_index\": 21,\n \"symbol_name\": \"String\",\n \"qualified_name\": \"String\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val String.lastChar: Char?\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Extension property returning the last character or null.\\n@receiver String The string to inspect.\",\n \"doxygen\": {\n \"brief\": [\n \"Extension property returning the last character or null.\\n@receiver String The string to inspect.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 229,\n \"end_line_number\": 249,\n \"line_range\": [\n 229,\n 249\n ],\n \"declaration_order_index\": 22,\n \"symbol_name\": \"Vector2\",\n \"qualified_name\": \"Vector2\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"data class Vector2(val x: Double, val y: Double)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"2D vector with operator overloading for arithmetic.\",\n \"doxygen\": {\n \"brief\": [\n \"2D vector with operator overloading for arithmetic.\",\n \"Add two vectors component-wise.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"x\",\n \"description\": \"Horizontal component.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"y\",\n \"description\": \"Vertical component.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"other\",\n \"description\": \"The vector to add.\"\n }\n ],\n \"returns\": [\n \"Resulting sum vector.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 230,\n \"end_line_number\": 234,\n \"line_range\": [\n 230,\n 234\n ],\n \"text\": \"@brief Add two vectors component-wise. @param other The vector to add. @return Resulting sum vector.\",\n \"text_lines\": [\n \"@brief Add two vectors component-wise. @param other The vector to add. @return Resulting sum vector.\"\n ]\n },\n {\n \"start_line_number\": 237,\n \"end_line_number\": 240,\n \"line_range\": [\n 237,\n 240\n ],\n \"text\": \"@brief Negate the vector (unary minus). @return Vector with negated components.\",\n \"text_lines\": [\n \"@brief Negate the vector (unary minus). @return Vector with negated components.\"\n ]\n },\n {\n \"start_line_number\": 243,\n \"end_line_number\": 247,\n \"line_range\": [\n 243,\n 247\n ],\n \"text\": \"@brief Compute dot product via times operator. @param other The other vector. @return Scalar dot product.\",\n \"text_lines\": [\n \"@brief Compute dot product via times operator. @param other The other vector. @return Scalar dot product.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 254,\n \"end_line_number\": 254,\n \"line_range\": [\n 254,\n 254\n ],\n \"declaration_order_index\": 23,\n \"symbol_name\": \"PI\",\n \"qualified_name\": \"PI\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val PI = 3.14159265\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Mathematical constant Pi. */\",\n \"doxygen\": {\n \"brief\": [\n \"Mathematical constant Pi. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 257,\n \"end_line_number\": 257,\n \"line_range\": [\n 257,\n 257\n ],\n \"declaration_order_index\": 24,\n \"symbol_name\": \"counter\",\n \"qualified_name\": \"counter\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"var counter = 0\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Mutable package-level counter. */\",\n \"doxygen\": {\n \"brief\": [\n \"Mutable package-level counter. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 265,\n \"end_line_number\": 286,\n \"line_range\": [\n 265,\n 286\n ],\n \"declaration_order_index\": 25,\n \"symbol_name\": \"Singleton\",\n \"qualified_name\": \"Singleton\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"object Singleton\",\n \"child_symbol_names\": [\n \"set\"\n ],\n \"child_qualified_names\": [\n \"Singleton.set\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Application-wide singleton for configuration management.\",\n \"doxygen\": {\n \"brief\": [\n \"Application-wide singleton for configuration management.\",\n \"Mutable configuration map.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 266,\n \"end_line_number\": 266,\n \"line_range\": [\n 266,\n 266\n ],\n \"text\": \"@brief Mutable configuration map.\",\n \"text_lines\": [\n \"@brief Mutable configuration map.\"\n ]\n },\n {\n \"start_line_number\": 269,\n \"end_line_number\": 273,\n \"line_range\": [\n 269,\n 273\n ],\n \"text\": \"@brief Store a configuration value. @param key Configuration key. @param value Configuration value.\",\n \"text_lines\": [\n \"@brief Store a configuration value. @param key Configuration key. @param value Configuration value.\"\n ]\n },\n {\n \"start_line_number\": 278,\n \"end_line_number\": 283,\n \"line_range\": [\n 278,\n 283\n ],\n \"text\": \"@brief Retrieve a typed configuration value. @tparam T Expected value type. @param key Configuration key. @return The value cast to T, or null.\",\n \"text_lines\": [\n \"@brief Retrieve a typed configuration value. @tparam T Expected value type. @param key Configuration key. @return The value cast to T, or null.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 274,\n \"end_line_number\": 276,\n \"line_range\": [\n 274,\n 276\n ],\n \"declaration_order_index\": 26,\n \"symbol_name\": \"set\",\n \"qualified_name\": \"Singleton.set\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun set(key: String, value: Any)\",\n \"parent_symbol_name\": \"Singleton\",\n \"parent_qualified_name\": \"Singleton\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Store a configuration value.\",\n \"doxygen\": {\n \"brief\": [\n \"Store a configuration value.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"key\",\n \"description\": \"Configuration key.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Configuration value.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 285,\n \"end_line_number\": 292,\n \"line_range\": [\n 285,\n 292\n ],\n \"declaration_order_index\": 27,\n \"symbol_name\": \"get\",\n \"qualified_name\": \"get\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun <T> get(key: String): T? = config[key] as? T\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"decorator_text\": \"@Suppress(\\\"UNCHECKED_CAST\\\")\",\n \"attached_comment_summary_text\": \"Companion object pattern for factory construction.\",\n \"doxygen\": {\n \"brief\": [\n \"Companion object pattern for factory construction.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 288,\n \"end_line_number\": 291,\n \"line_range\": [\n 288,\n 291\n ],\n \"text\": \"@object Factory @brief Companion object pattern for factory construction.\",\n \"text_lines\": [\n \"@object Factory @brief Companion object pattern for factory construction.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 292,\n \"end_line_number\": 293,\n \"line_range\": [\n 292,\n 293\n ],\n \"declaration_order_index\": 28,\n \"symbol_name\": \"Factory\",\n \"qualified_name\": \"Factory\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"companion object Factory\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Companion object pattern for factory construction.\",\n \"doxygen\": {\n \"brief\": [\n \"Companion object pattern for factory construction.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 303,\n \"end_line_number\": 316,\n \"line_range\": [\n 303,\n 316\n ],\n \"declaration_order_index\": 29,\n \"symbol_name\": \"DelegatingList\",\n \"qualified_name\": \"DelegatingList\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class DelegatingList<T>(private val inner: MutableList<T>) : List<T> by inner\",\n \"visibility\": \"priv\",\n \"child_symbol_names\": [\n \"accessCount\"\n ],\n \"child_qualified_names\": [\n \"DelegatingList.accessCount\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"List implementation delegating to an inner mutable list.\\n@tparam T Element type.\",\n \"doxygen\": {\n \"brief\": [\n \"List implementation delegating to an inner mutable list.\\n@tparam T Element type.\",\n \"Count of accesses to the delegated list.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"inner\",\n \"description\": \"The backing list.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 304,\n \"end_line_number\": 304,\n \"line_range\": [\n 304,\n 304\n ],\n \"text\": \"@brief Count of accesses to the delegated list.\",\n \"text_lines\": [\n \"@brief Count of accesses to the delegated list.\"\n ]\n },\n {\n \"start_line_number\": 308,\n \"end_line_number\": 310,\n \"line_range\": [\n 308,\n 310\n ],\n \"text\": \"@brief Override size to track access and delegate.\",\n \"text_lines\": [\n \"@brief Override size to track access and delegate.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 314,\n \"text\": \"return inner.size\"\n }\n ]\n },\n {\n \"start_line_number\": 305,\n \"end_line_number\": 305,\n \"line_range\": [\n 305,\n 305\n ],\n \"declaration_order_index\": 30,\n \"symbol_name\": \"accessCount\",\n \"qualified_name\": \"DelegatingList.accessCount\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"var accessCount = 0\",\n \"parent_symbol_name\": \"DelegatingList\",\n \"parent_qualified_name\": \"DelegatingList\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Count of accesses to the delegated list. */\",\n \"doxygen\": {\n \"brief\": [\n \"Count of accesses to the delegated list. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 324,\n \"end_line_number\": 339,\n \"line_range\": [\n 324,\n 339\n ],\n \"declaration_order_index\": 31,\n \"symbol_name\": \"Service\",\n \"qualified_name\": \"Service\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class Service\",\n \"child_symbol_names\": [\n \"resource\"\n ],\n \"child_qualified_names\": [\n \"Service.resource\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Service class demonstrating lateinit and lazy initialization.\",\n \"doxygen\": {\n \"brief\": [\n \"Service class demonstrating lateinit and lazy initialization.\",\n \"Late-initialized dependency, set after construction.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 325,\n \"end_line_number\": 325,\n \"line_range\": [\n 325,\n 325\n ],\n \"text\": \"@brief Late-initialized dependency, set after construction.\",\n \"text_lines\": [\n \"@brief Late-initialized dependency, set after construction.\"\n ]\n },\n {\n \"start_line_number\": 328,\n \"end_line_number\": 328,\n \"line_range\": [\n 328,\n 328\n ],\n \"text\": \"@brief Lazily computed expensive resource.\",\n \"text_lines\": [\n \"@brief Lazily computed expensive resource.\"\n ]\n },\n {\n \"start_line_number\": 330,\n \"end_line_number\": 330,\n \"line_range\": [\n 330,\n 330\n ],\n \"text\": \"Computed on first access\",\n \"text_lines\": [\n \"Computed on first access\"\n ]\n },\n {\n \"start_line_number\": 334,\n \"end_line_number\": 337,\n \"line_range\": [\n 334,\n 337\n ],\n \"text\": \"@brief Check if the dependency has been initialized. @return True if dependency is set.\",\n \"text_lines\": [\n \"@brief Check if the dependency has been initialized. @return True if dependency is set.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 329,\n \"end_line_number\": 329,\n \"line_range\": [\n 329,\n 329\n ],\n \"declaration_order_index\": 32,\n \"symbol_name\": \"resource\",\n \"qualified_name\": \"Service.resource\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val resource: String by lazy\",\n \"parent_symbol_name\": \"Service\",\n \"parent_qualified_name\": \"Service\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Lazily computed expensive resource. */\",\n \"doxygen\": {\n \"brief\": [\n \"Lazily computed expensive resource. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 338,\n \"end_line_number\": 347,\n \"line_range\": [\n 338,\n 347\n ],\n \"declaration_order_index\": 33,\n \"symbol_name\": \"isReady\",\n \"qualified_name\": \"isReady\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun isReady(): Boolean = ::dependency.isInitialized\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Check if the dependency has been initialized.\",\n \"doxygen\": {\n \"brief\": [\n \"Check if the dependency has been initialized.\"\n ],\n \"returns\": [\n \"True if dependency is set.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 341,\n \"end_line_number\": 341,\n \"line_range\": [\n 341,\n 341\n ],\n \"text\": \"── DSL builder pattern ────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── DSL builder pattern ────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 343,\n \"end_line_number\": 346,\n \"line_range\": [\n 343,\n 346\n ],\n \"text\": \"@class HtmlBuilder @brief Simple DSL for building HTML strings.\",\n \"text_lines\": [\n \"@class HtmlBuilder @brief Simple DSL for building HTML strings.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 347,\n \"end_line_number\": 373,\n \"line_range\": [\n 347,\n 373\n ],\n \"declaration_order_index\": 34,\n \"symbol_name\": \"HtmlBuilder\",\n \"qualified_name\": \"HtmlBuilder\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class HtmlBuilder\",\n \"child_symbol_names\": [\n \"div\",\n \"inner\",\n \"text\"\n ],\n \"child_qualified_names\": [\n \"HtmlBuilder.div\",\n \"HtmlBuilder.inner\",\n \"HtmlBuilder.text\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Simple DSL for building HTML strings.\",\n \"doxygen\": {\n \"brief\": [\n \"Simple DSL for building HTML strings.\",\n \"Add a div element with content from a lambda.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"block\",\n \"description\": \"Lambda providing the div content.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 350,\n \"end_line_number\": 353,\n \"line_range\": [\n 350,\n 353\n ],\n \"text\": \"@brief Add a div element with content from a lambda. @param block Lambda providing the div content.\",\n \"text_lines\": [\n \"@brief Add a div element with content from a lambda. @param block Lambda providing the div content.\"\n ]\n },\n {\n \"start_line_number\": 360,\n \"end_line_number\": 363,\n \"line_range\": [\n 360,\n 363\n ],\n \"text\": \"@brief Add a text node. @param text The text content.\",\n \"text_lines\": [\n \"@brief Add a text node. @param text The text content.\"\n ]\n },\n {\n \"start_line_number\": 368,\n \"end_line_number\": 371,\n \"line_range\": [\n 368,\n 371\n ],\n \"text\": \"@brief Build the accumulated HTML string. @return Concatenated HTML output.\",\n \"text_lines\": [\n \"@brief Build the accumulated HTML string. @return Concatenated HTML output.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 354,\n \"end_line_number\": 358,\n \"line_range\": [\n 354,\n 358\n ],\n \"declaration_order_index\": 35,\n \"symbol_name\": \"div\",\n \"qualified_name\": \"HtmlBuilder.div\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun div(block: HtmlBuilder.() -> Unit)\",\n \"parent_symbol_name\": \"HtmlBuilder\",\n \"parent_qualified_name\": \"HtmlBuilder\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Add a div element with content from a lambda.\",\n \"doxygen\": {\n \"brief\": [\n \"Add a div element with content from a lambda.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"block\",\n \"description\": \"Lambda providing the div content.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 355,\n \"end_line_number\": 355,\n \"line_range\": [\n 355,\n 355\n ],\n \"declaration_order_index\": 36,\n \"symbol_name\": \"inner\",\n \"qualified_name\": \"HtmlBuilder.inner\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val inner = HtmlBuilder()\",\n \"parent_symbol_name\": \"HtmlBuilder\",\n \"parent_qualified_name\": \"HtmlBuilder\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 364,\n \"end_line_number\": 366,\n \"line_range\": [\n 364,\n 366\n ],\n \"declaration_order_index\": 37,\n \"symbol_name\": \"text\",\n \"qualified_name\": \"HtmlBuilder.text\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun text(text: String)\",\n \"parent_symbol_name\": \"HtmlBuilder\",\n \"parent_qualified_name\": \"HtmlBuilder\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Add a text node.\",\n \"doxygen\": {\n \"brief\": [\n \"Add a text node.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"text\",\n \"description\": \"The text content.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 372,\n \"end_line_number\": 381,\n \"line_range\": [\n 372,\n 381\n ],\n \"declaration_order_index\": 38,\n \"symbol_name\": \"build\",\n \"qualified_name\": \"build\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun build(): String = elements.joinToString(\\\"\\\")\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Build the accumulated HTML string.\",\n \"doxygen\": {\n \"brief\": [\n \"Build the accumulated HTML string.\",\n \"DSL entry point for building HTML content.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"block\",\n \"description\": \"Builder lambda receiving HtmlBuilder scope.\"\n }\n ],\n \"returns\": [\n \"Concatenated HTML output.\",\n \"Complete HTML string.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 375,\n \"end_line_number\": 380,\n \"line_range\": [\n 375,\n 380\n ],\n \"text\": \"@function html @brief DSL entry point for building HTML content. @param block Builder lambda receiving HtmlBuilder scope. @return Complete HTML string.\",\n \"text_lines\": [\n \"@function html @brief DSL entry point for building HTML content. @param block Builder lambda receiving HtmlBuilder scope. @return Complete HTML string.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 381,\n \"end_line_number\": 385,\n \"line_range\": [\n 381,\n 385\n ],\n \"declaration_order_index\": 39,\n \"symbol_name\": \"html\",\n \"qualified_name\": \"html\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun html(block: HtmlBuilder.() -> Unit): String\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"DSL entry point for building HTML content.\",\n \"doxygen\": {\n \"brief\": [\n \"DSL entry point for building HTML content.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"block\",\n \"description\": \"Builder lambda receiving HtmlBuilder scope.\"\n }\n ],\n \"returns\": [\n \"Complete HTML string.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 384,\n \"text\": \"return builder.build()\"\n }\n ]\n },\n {\n \"start_line_number\": 382,\n \"end_line_number\": 382,\n \"line_range\": [\n 382,\n 382\n ],\n \"declaration_order_index\": 40,\n \"symbol_name\": \"builder\",\n \"qualified_name\": \"builder\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val builder = HtmlBuilder()\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 390,\n \"end_line_number\": 394,\n \"line_range\": [\n 390,\n 394\n ],\n \"declaration_order_index\": 41,\n \"symbol_name\": \"Logger\",\n \"qualified_name\": \"Logger\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface Logger\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 391,\n \"end_line_number\": 394,\n \"line_range\": [\n 391,\n 394\n ],\n \"declaration_order_index\": 42,\n \"symbol_name\": \"Parser\",\n \"qualified_name\": \"Parser\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface Parser\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 392,\n \"end_line_number\": 394,\n \"line_range\": [\n 392,\n 394\n ],\n \"declaration_order_index\": 43,\n \"symbol_name\": \"Emitter\",\n \"qualified_name\": \"Emitter\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface Emitter\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 393,\n \"end_line_number\": 394,\n \"line_range\": [\n 393,\n 394\n ],\n \"declaration_order_index\": 44,\n \"symbol_name\": \"Formatter\",\n \"qualified_name\": \"Formatter\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface Formatter\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 394,\n \"end_line_number\": 394,\n \"line_range\": [\n 394,\n 394\n ],\n \"declaration_order_index\": 45,\n \"symbol_name\": \"ModeKt\",\n \"qualified_name\": \"ModeKt\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum class ModeKt { FAST, SAFE }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 395,\n \"end_line_number\": 395,\n \"line_range\": [\n 395,\n 395\n ],\n \"declaration_order_index\": 46,\n \"symbol_name\": \"PhaseKt\",\n \"qualified_name\": \"PhaseKt\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum class PhaseKt { INIT, RUN }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 396,\n \"end_line_number\": 396,\n \"line_range\": [\n 396,\n 396\n ],\n \"declaration_order_index\": 47,\n \"symbol_name\": \"StatusKt\",\n \"qualified_name\": \"StatusKt\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum class StatusKt { READY, WAITING }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 397,\n \"end_line_number\": 397,\n \"line_range\": [\n 397,\n 397\n ],\n \"declaration_order_index\": 48,\n \"symbol_name\": \"SignalKt\",\n \"qualified_name\": \"SignalKt\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum class SignalKt { ON, OFF }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 400,\n \"end_line_number\": 400,\n \"line_range\": [\n 400,\n 400\n ],\n \"declaration_order_index\": 49,\n \"symbol_name\": \"CacheStore\",\n \"qualified_name\": \"CacheStore\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"object CacheStore\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"decorator_text\": \"@PublishedApi\",\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 401,\n \"end_line_number\": 401,\n \"line_range\": [\n 401,\n 401\n ],\n \"declaration_order_index\": 50,\n \"symbol_name\": \"retries\",\n \"qualified_name\": \"retries\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"var retries = 0\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 402,\n \"end_line_number\": 402,\n \"line_range\": [\n 402,\n 402\n ],\n \"declaration_order_index\": 51,\n \"symbol_name\": \"attempts\",\n \"qualified_name\": \"attempts\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"var attempts = 0\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 403,\n \"end_line_number\": 403,\n \"line_range\": [\n 403,\n 403\n ],\n \"declaration_order_index\": 52,\n \"symbol_name\": \"state\",\n \"qualified_name\": \"state\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"var state = \\\"idle\\\"\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 413,\n \"end_line_number\": 413,\n \"line_range\": [\n 413,\n 413\n ],\n \"declaration_order_index\": 53,\n \"symbol_name\": \"reqCoverKotlin1\",\n \"qualified_name\": \"reqCoverKotlin1\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun reqCoverKotlin1(value: Int): Int = value + 1\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 1.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 1.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 422,\n \"end_line_number\": 422,\n \"line_range\": [\n 422,\n 422\n ],\n \"declaration_order_index\": 54,\n \"symbol_name\": \"reqCoverKotlin2\",\n \"qualified_name\": \"reqCoverKotlin2\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun reqCoverKotlin2(value: Int): Int = value + 2\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 2.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 2.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 2.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 2.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 2.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 431,\n \"end_line_number\": 431,\n \"line_range\": [\n 431,\n 431\n ],\n \"declaration_order_index\": 55,\n \"symbol_name\": \"reqCoverKotlin3\",\n \"qualified_name\": \"reqCoverKotlin3\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun reqCoverKotlin3(value: Int): Int = value + 3\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 3.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 3.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 3.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 3.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 3.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 440,\n \"end_line_number\": 440,\n \"line_range\": [\n 440,\n 440\n ],\n \"declaration_order_index\": 56,\n \"symbol_name\": \"reqCoverKotlin4\",\n \"qualified_name\": \"reqCoverKotlin4\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun reqCoverKotlin4(value: Int): Int = value + 4\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 4.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 4.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 4.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 4.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 4.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 449,\n \"end_line_number\": 449,\n \"line_range\": [\n 449,\n 449\n ],\n \"declaration_order_index\": 57,\n \"symbol_name\": \"reqCoverKotlin5\",\n \"qualified_name\": \"reqCoverKotlin5\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun reqCoverKotlin5(value: Int): Int = value + 5\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 5.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 5.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 5.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 5.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 5.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n }\n ],\n \"standalone_comments\": [\n {\n \"start_line_number\": 8,\n \"end_line_number\": 8,\n \"line_range\": [\n 8,\n 8\n ],\n \"text\": \"Single line comment\",\n \"text_lines\": [\n \"Single line comment\"\n ]\n },\n {\n \"start_line_number\": 9,\n \"end_line_number\": 10,\n \"line_range\": [\n 9,\n 10\n ],\n \"text\": \"Multi-line comment\",\n \"text_lines\": [\n \"Multi-line\",\n \"comment\"\n ]\n },\n {\n \"start_line_number\": 15,\n \"end_line_number\": 15,\n \"line_range\": [\n 15,\n 15\n ],\n \"text\": \"── Annotations ────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Annotations ────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"text\": \"── Sealed class hierarchy ─────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Sealed class hierarchy ─────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 63,\n \"end_line_number\": 63,\n \"line_range\": [\n 63,\n 63\n ],\n \"text\": \"── Interface ──────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Interface ──────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 101,\n \"end_line_number\": 101,\n \"line_range\": [\n 101,\n 101\n ],\n \"text\": \"── Enum class ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Enum class ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 108,\n \"end_line_number\": 108,\n \"line_range\": [\n 108,\n 108\n ],\n \"text\": \"@brief Red color channel.\",\n \"text_lines\": [\n \"@brief Red color channel.\"\n ]\n },\n {\n \"start_line_number\": 110,\n \"end_line_number\": 110,\n \"line_range\": [\n 110,\n 110\n ],\n \"text\": \"@brief Green color channel.\",\n \"text_lines\": [\n \"@brief Green color channel.\"\n ]\n },\n {\n \"start_line_number\": 125,\n \"end_line_number\": 125,\n \"line_range\": [\n 125,\n 125\n ],\n \"text\": \"── Data class implementing interface ──────────────────────────────────\",\n \"text_lines\": [\n \"── Data class implementing interface ──────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 140,\n \"end_line_number\": 140,\n \"line_range\": [\n 140,\n 140\n ],\n \"text\": \"── Value class (inline class) ─────────────────────────────────────────\",\n \"text_lines\": [\n \"── Value class (inline class) ─────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 142,\n \"end_line_number\": 146,\n \"line_range\": [\n 142,\n 146\n ],\n \"text\": \"@class EmailAddress @brief Inline value class wrapping a validated email string. @param value The raw email address string.\",\n \"text_lines\": [\n \"@class EmailAddress\",\n \"@brief Inline value class wrapping a validated email string.\",\n \"@param value The raw email address string.\"\n ]\n },\n {\n \"start_line_number\": 157,\n \"end_line_number\": 157,\n \"line_range\": [\n 157,\n 157\n ],\n \"text\": \"── Functions ──────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Functions ──────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 175,\n \"end_line_number\": 175,\n \"line_range\": [\n 175,\n 175\n ],\n \"text\": \"Simulate network delay\",\n \"text_lines\": [\n \"Simulate network delay\"\n ]\n },\n {\n \"start_line_number\": 190,\n \"end_line_number\": 190,\n \"line_range\": [\n 190,\n 190\n ],\n \"text\": \"── Extension functions ────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Extension functions ────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 192,\n \"end_line_number\": 196,\n \"line_range\": [\n 192,\n 196\n ],\n \"text\": \"@brief Extension function adding word count to String. @receiver String The string to count words in. @return Number of whitespace-separated words.\",\n \"text_lines\": [\n \"@brief Extension function adding word count to String.\",\n \"@receiver String The string to count words in.\",\n \"@return Number of whitespace-separated words.\"\n ]\n },\n {\n \"start_line_number\": 208,\n \"end_line_number\": 208,\n \"line_range\": [\n 208,\n 208\n ],\n \"text\": \"── Inline function with reified type ──────────────────────────────────\",\n \"text_lines\": [\n \"── Inline function with reified type ──────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 210,\n \"end_line_number\": 216,\n \"line_range\": [\n 210,\n 216\n ],\n \"text\": \"@function filterByType @brief Filter list elements by reified type parameter. @tparam T The target type to filter for. ...\",\n \"text_lines\": [\n \"@function filterByType\",\n \"@brief Filter list elements by reified type parameter.\",\n \"@tparam T The target type to filter for.\",\n \"...\"\n ]\n },\n {\n \"start_line_number\": 221,\n \"end_line_number\": 221,\n \"line_range\": [\n 221,\n 221\n ],\n \"text\": \"── Operator overloading ───────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Operator overloading ───────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 230,\n \"end_line_number\": 234,\n \"line_range\": [\n 230,\n 234\n ],\n \"text\": \"@brief Add two vectors component-wise. @param other The vector to add. @return Resulting sum vector.\",\n \"text_lines\": [\n \"@brief Add two vectors component-wise.\",\n \"@param other The vector to add.\",\n \"@return Resulting sum vector.\"\n ]\n },\n {\n \"start_line_number\": 237,\n \"end_line_number\": 240,\n \"line_range\": [\n 237,\n 240\n ],\n \"text\": \"@brief Negate the vector (unary minus). @return Vector with negated components.\",\n \"text_lines\": [\n \"@brief Negate the vector (unary minus).\",\n \"@return Vector with negated components.\"\n ]\n },\n {\n \"start_line_number\": 243,\n \"end_line_number\": 247,\n \"line_range\": [\n 243,\n 247\n ],\n \"text\": \"@brief Compute dot product via times operator. @param other The other vector. @return Scalar dot product.\",\n \"text_lines\": [\n \"@brief Compute dot product via times operator.\",\n \"@param other The other vector.\",\n \"@return Scalar dot product.\"\n ]\n },\n {\n \"start_line_number\": 259,\n \"end_line_number\": 259,\n \"line_range\": [\n 259,\n 259\n ],\n \"text\": \"── Object (singleton) ─────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Object (singleton) ─────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 266,\n \"end_line_number\": 266,\n \"line_range\": [\n 266,\n 266\n ],\n \"text\": \"@brief Mutable configuration map.\",\n \"text_lines\": [\n \"@brief Mutable configuration map.\"\n ]\n },\n {\n \"start_line_number\": 295,\n \"end_line_number\": 295,\n \"line_range\": [\n 295,\n 295\n ],\n \"text\": \"── Delegation ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Delegation ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 308,\n \"end_line_number\": 310,\n \"line_range\": [\n 308,\n 310\n ],\n \"text\": \"@brief Override size to track access and delegate.\",\n \"text_lines\": [\n \"@brief Override size to track access and delegate.\"\n ]\n },\n {\n \"start_line_number\": 318,\n \"end_line_number\": 318,\n \"line_range\": [\n 318,\n 318\n ],\n \"text\": \"── Class with lateinit ────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Class with lateinit ────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 325,\n \"end_line_number\": 325,\n \"line_range\": [\n 325,\n 325\n ],\n \"text\": \"@brief Late-initialized dependency, set after construction.\",\n \"text_lines\": [\n \"@brief Late-initialized dependency, set after construction.\"\n ]\n },\n {\n \"start_line_number\": 330,\n \"end_line_number\": 330,\n \"line_range\": [\n 330,\n 330\n ],\n \"text\": \"Computed on first access\",\n \"text_lines\": [\n \"Computed on first access\"\n ]\n },\n {\n \"start_line_number\": 341,\n \"end_line_number\": 341,\n \"line_range\": [\n 341,\n 341\n ],\n \"text\": \"── DSL builder pattern ────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── DSL builder pattern ────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 387,\n \"end_line_number\": 387,\n \"line_range\": [\n 387,\n 387\n ],\n \"text\": \"coverage extension block\",\n \"text_lines\": [\n \"coverage extension block\"\n ]\n },\n {\n \"start_line_number\": 405,\n \"end_line_number\": 405,\n \"line_range\": [\n 405,\n 405\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 451,\n \"end_line_number\": 451,\n \"line_range\": [\n 451,\n 451\n ],\n \"text\": \"REQ-COVER-SRS-231 END\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 END\"\n ]\n }\n ]\n }\n ]\n}\n",
4
+ "stderr": ""
5
+ }