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.
- package/.g.conf +20 -0
- package/.github/workflows/release-npm.yml +131 -0
- package/.gitignore +270 -0
- package/CHANGELOG.md +221 -0
- package/LICENSE +674 -0
- package/README.md +260 -0
- package/TODO.md +20 -0
- package/docs/pi.dev/agent-document-manifest.json +6399 -0
- package/docs/pi.dev/coding-agent-docs/compaction.md +394 -0
- package/docs/pi.dev/coding-agent-docs/custom-provider.md +596 -0
- package/docs/pi.dev/coding-agent-docs/development.md +71 -0
- package/docs/pi.dev/coding-agent-docs/extensions.md +2262 -0
- package/docs/pi.dev/coding-agent-docs/images/doom-extension.png +0 -0
- package/docs/pi.dev/coding-agent-docs/images/exy.png +0 -0
- package/docs/pi.dev/coding-agent-docs/images/interactive-mode.png +0 -0
- package/docs/pi.dev/coding-agent-docs/images/tree-view.png +0 -0
- package/docs/pi.dev/coding-agent-docs/json.md +82 -0
- package/docs/pi.dev/coding-agent-docs/keybindings.md +175 -0
- package/docs/pi.dev/coding-agent-docs/models.md +392 -0
- package/docs/pi.dev/coding-agent-docs/packages.md +218 -0
- package/docs/pi.dev/coding-agent-docs/prompt-templates.md +67 -0
- package/docs/pi.dev/coding-agent-docs/providers.md +195 -0
- package/docs/pi.dev/coding-agent-docs/rpc.md +1377 -0
- package/docs/pi.dev/coding-agent-docs/sdk.md +1124 -0
- package/docs/pi.dev/coding-agent-docs/session.md +412 -0
- package/docs/pi.dev/coding-agent-docs/settings.md +247 -0
- package/docs/pi.dev/coding-agent-docs/shell-aliases.md +13 -0
- package/docs/pi.dev/coding-agent-docs/skills.md +232 -0
- package/docs/pi.dev/coding-agent-docs/terminal-setup.md +106 -0
- package/docs/pi.dev/coding-agent-docs/termux.md +127 -0
- package/docs/pi.dev/coding-agent-docs/themes.md +295 -0
- package/docs/pi.dev/coding-agent-docs/tmux.md +61 -0
- package/docs/pi.dev/coding-agent-docs/tree.md +231 -0
- package/docs/pi.dev/coding-agent-docs/tui.md +887 -0
- package/docs/pi.dev/coding-agent-docs/windows.md +17 -0
- package/docs/pi.dev/mom-docs/artifacts-server.md +475 -0
- package/docs/pi.dev/mom-docs/events.md +307 -0
- package/docs/pi.dev/mom-docs/new.md +970 -0
- package/docs/pi.dev/mom-docs/sandbox.md +153 -0
- package/docs/pi.dev/mom-docs/slack-bot-minimal-guide.md +399 -0
- package/docs/pi.dev/mom-docs/v86.md +319 -0
- package/docs/pi.dev/pods-docs/gml-4.5.md +189 -0
- package/docs/pi.dev/pods-docs/gpt-oss.md +233 -0
- package/docs/pi.dev/pods-docs/implementation-plan.md +183 -0
- package/docs/pi.dev/pods-docs/kimi-k2.md +197 -0
- package/docs/pi.dev/pods-docs/models.md +116 -0
- package/docs/pi.dev/pods-docs/plan.md +166 -0
- package/docs/pi.dev/pods-docs/qwen3-coder.md +132 -0
- package/images/flowchart-bw.png +0 -0
- package/images/flowchart-bw.svg +102 -0
- package/images/flowchart.md +100 -0
- package/images/flowchart.png +0 -0
- package/images/flowchart.svg +3 -0
- package/package.json +46 -0
- package/req/docs/REFERENCES.md +4554 -0
- package/req/docs/REQUIREMENTS.md +475 -0
- package/req/docs/WORKFLOW.md +1059 -0
- package/scripts/debug-extension.ts +497 -0
- package/scripts/lib/extension-debug-harness.ts +450 -0
- package/scripts/lib/recording-extension-api.ts +786 -0
- package/scripts/lib/sdk-smoke.ts +503 -0
- package/scripts/pi-usereq-debug.sh +330 -0
- package/scripts/tool-args-to-params.ts +208 -0
- package/src/cli.ts +349 -0
- package/src/core/agent-tool-json.ts +621 -0
- package/src/core/compress-files.ts +72 -0
- package/src/core/compress-payload.ts +648 -0
- package/src/core/compress.ts +464 -0
- package/src/core/config.ts +272 -0
- package/src/core/doxygen-parser.ts +318 -0
- package/src/core/errors.ts +31 -0
- package/src/core/extension-status.ts +660 -0
- package/src/core/find-constructs.ts +319 -0
- package/src/core/find-payload.ts +915 -0
- package/src/core/generate-markdown.ts +120 -0
- package/src/core/path-context.ts +196 -0
- package/src/core/pi-notify.ts +430 -0
- package/src/core/pi-usereq-tools.ts +140 -0
- package/src/core/prompts.ts +184 -0
- package/src/core/reference-payload.ts +818 -0
- package/src/core/resources.ts +63 -0
- package/src/core/runtime-project-paths.ts +99 -0
- package/src/core/settings-menu.ts +233 -0
- package/src/core/source-analyzer.ts +1721 -0
- package/src/core/static-check.ts +674 -0
- package/src/core/token-counter.ts +729 -0
- package/src/core/tool-runner.ts +717 -0
- package/src/core/utils.ts +185 -0
- package/src/index.ts +2209 -0
- package/src/resources/guidelines/Google_C++_Style_Guide.md +3711 -0
- package/src/resources/guidelines/Google_Python_Style_Guide.md +3709 -0
- package/src/resources/prompts/analyze.md +130 -0
- package/src/resources/prompts/change.md +227 -0
- package/src/resources/prompts/check.md +139 -0
- package/src/resources/prompts/cover.md +219 -0
- package/src/resources/prompts/create.md +104 -0
- package/src/resources/prompts/fix.md +221 -0
- package/src/resources/prompts/flowchart.md +220 -0
- package/src/resources/prompts/implement.md +163 -0
- package/src/resources/prompts/new.md +226 -0
- package/src/resources/prompts/readme.md +182 -0
- package/src/resources/prompts/recreate.md +213 -0
- package/src/resources/prompts/refactor.md +213 -0
- package/src/resources/prompts/references.md +100 -0
- package/src/resources/prompts/renumber.md +119 -0
- package/src/resources/prompts/workflow.md +202 -0
- package/src/resources/prompts/write.md +99 -0
- package/src/resources/sounds/Machine-alert-beep-sound-effect.mp3 +0 -0
- package/src/resources/sounds/Soft-high-tech-notification-sound-effect.mp3 +0 -0
- package/src/resources/templates/Document_Source_Code_in_Doxygen_Style.md +130 -0
- package/src/resources/templates/HDT_Test_Authoring_Guide.md +318 -0
- package/src/resources/templates/Requirements_Template.md +78 -0
- package/tests/attended-results-scenarios.ts +758 -0
- package/tests/attended-results.test.ts +39 -0
- package/tests/cli-command-option-parity.test.ts +815 -0
- package/tests/debug-extension-harness.test.ts +463 -0
- package/tests/extension-registration.test.ts +2006 -0
- package/tests/fixtures/fixture_c.c +361 -0
- package/tests/fixtures/fixture_cpp.cpp +407 -0
- package/tests/fixtures/fixture_csharp.cs +411 -0
- package/tests/fixtures/fixture_elixir.ex +409 -0
- package/tests/fixtures/fixture_go.go +341 -0
- package/tests/fixtures/fixture_haskell.hs +250 -0
- package/tests/fixtures/fixture_java.java +430 -0
- package/tests/fixtures/fixture_javascript.js +383 -0
- package/tests/fixtures/fixture_kotlin.kt +451 -0
- package/tests/fixtures/fixture_lua.lua +276 -0
- package/tests/fixtures/fixture_perl.pl +310 -0
- package/tests/fixtures/fixture_php.php +433 -0
- package/tests/fixtures/fixture_python.py +502 -0
- package/tests/fixtures/fixture_ruby.rb +345 -0
- package/tests/fixtures/fixture_rust.rs +380 -0
- package/tests/fixtures/fixture_scala.scala +398 -0
- package/tests/fixtures/fixture_shell.sh +276 -0
- package/tests/fixtures/fixture_swift.swift +397 -0
- package/tests/fixtures/fixture_typescript.ts +434 -0
- package/tests/fixtures/fixture_zig.zig +295 -0
- package/tests/fixtures_attended_results/project/compress-line-numbers.json +5 -0
- package/tests/fixtures_attended_results/project/compress.json +5 -0
- package/tests/fixtures_attended_results/project/enable-static-check-invalid-command.json +5 -0
- package/tests/fixtures_attended_results/project/enable-static-check-valid.json +5 -0
- package/tests/fixtures_attended_results/project/files-static-check.json +5 -0
- package/tests/fixtures_attended_results/project/find-line-numbers.json +5 -0
- package/tests/fixtures_attended_results/project/find.json +5 -0
- package/tests/fixtures_attended_results/project/get-base-path.json +5 -0
- package/tests/fixtures_attended_results/project/git-check-clean.json +5 -0
- package/tests/fixtures_attended_results/project/git-check-dirty.json +5 -0
- package/tests/fixtures_attended_results/project/git-path.json +5 -0
- package/tests/fixtures_attended_results/project/git-wt-create-invalid.json +5 -0
- package/tests/fixtures_attended_results/project/git-wt-create-valid.json +5 -0
- package/tests/fixtures_attended_results/project/git-wt-delete-nonexistent.json +5 -0
- package/tests/fixtures_attended_results/project/git-wt-delete-valid.json +5 -0
- package/tests/fixtures_attended_results/project/git-wt-name.json +5 -0
- package/tests/fixtures_attended_results/project/references.json +5 -0
- package/tests/fixtures_attended_results/project/static-check.json +5 -0
- package/tests/fixtures_attended_results/project/tokens.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_zig.zig.json +5 -0
- package/tests/helpers.ts +204 -0
- package/tests/oracle-project.test.ts +63 -0
- package/tests/oracle-standalone.test.ts +48 -0
- package/tests/prompt-rendering.test.ts +66 -0
- 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_haskell.hs\"\n ],\n \"requested_canonical_paths\": [\n \"tests/fixtures/fixture_haskell.hs\"\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\": 36,\n \"total_import_count\": 5,\n \"total_comment_count\": 86,\n \"total_standalone_comment_count\": 31,\n \"total_doxygen_field_count\": 20,\n \"symbol_kind_counts\": {\n \"CLASS\": 5,\n \"FUNCTION\": 16,\n \"MODULE\": 5,\n \"STRUCT\": 5,\n \"TYPE_ALIAS\": 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_haskell.hs\"\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_haskell.hs\",\n \"relative_path\": \"tests/fixtures/fixture_haskell.hs\",\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\": 250,\n \"line_range\": [\n 1,\n 250\n ],\n \"request_index\": 0,\n \"input_path\": \"tests/fixtures/fixture_haskell.hs\",\n \"canonical_path\": \"tests/fixtures/fixture_haskell.hs\",\n \"absolute_path\": \"<ROOT>/tests/fixtures/fixture_haskell.hs\",\n \"file_name\": \"fixture_haskell.hs\",\n \"file_extension\": \".hs\",\n \"language_id\": \"haskell\",\n \"language_name\": \"Haskell\",\n \"status\": \"analyzed\",\n \"exists\": true,\n \"is_file\": true,\n \"import_count\": 5,\n \"symbol_count\": 36,\n \"comment_count\": 86,\n \"standalone_comment_count\": 31,\n \"doxygen_field_count\": 20,\n \"file_description_text\": \"@file fixture_haskell.hs\",\n \"imports\": [\n {\n \"start_line_number\": 22,\n \"end_line_number\": 22,\n \"line_range\": [\n 22,\n 22\n ],\n \"import_name\": \"Data.List (sort, nub, intercalate)\",\n \"statement_text\": \"import Data.List (sort, nub, intercalate)\"\n },\n {\n \"start_line_number\": 23,\n \"end_line_number\": 23,\n \"line_range\": [\n 23,\n 23\n ],\n \"import_name\": \"Data.Maybe (fromMaybe, isJust)\",\n \"statement_text\": \"import Data.Maybe (fromMaybe, isJust)\"\n },\n {\n \"start_line_number\": 24,\n \"end_line_number\": 24,\n \"line_range\": [\n 24,\n 24\n ],\n \"import_name\": \"Data.Map as Map\",\n \"statement_text\": \"import qualified Data.Map as Map\"\n },\n {\n \"start_line_number\": 25,\n \"end_line_number\": 25,\n \"line_range\": [\n 25,\n 25\n ],\n \"import_name\": \"Control.Monad (when, unless, forM_)\",\n \"statement_text\": \"import Control.Monad (when, unless, forM_)\"\n },\n {\n \"start_line_number\": 201,\n \"end_line_number\": 201,\n \"line_range\": [\n 201,\n 201\n ],\n \"import_name\": \"Data.Set as Set\",\n \"statement_text\": \"import qualified Data.Set as Set\"\n }\n ],\n \"symbols\": [\n {\n \"start_line_number\": 11,\n \"end_line_number\": 21,\n \"line_range\": [\n 11,\n 21\n ],\n \"declaration_order_index\": 0,\n \"symbol_name\": \"MyModule\",\n \"qualified_name\": \"MyModule\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"module MyModule\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"{- Multi-line comment -}\",\n \"attached_comment_lines\": [\n \"{- Multi-line\",\n \"comment -}\",\n \"| Module declaration with explicit export list.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 30,\n \"end_line_number\": 30,\n \"line_range\": [\n 30,\n 30\n ],\n \"declaration_order_index\": 1,\n \"symbol_name\": \"Name\",\n \"qualified_name\": \"Name\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"type Name = String\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Type aliases ───────────────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Type aliases ───────────────────────────────────────────────────────\",\n \"| Simple alias for human-readable name strings.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 33,\n \"end_line_number\": 33,\n \"line_range\": [\n 33,\n 33\n ],\n \"declaration_order_index\": 2,\n \"symbol_name\": \"Config\",\n \"qualified_name\": \"Config\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"type Config = Map.Map String Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Mapping from string keys to integer values.\",\n \"attached_comment_lines\": [\n \"| Mapping from string keys to integer values.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 36,\n \"end_line_number\": 36,\n \"line_range\": [\n 36,\n 36\n ],\n \"declaration_order_index\": 3,\n \"symbol_name\": \"Transform\",\n \"qualified_name\": \"Transform\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"type Transform a = a -> a\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Function type alias for transformations.\",\n \"attached_comment_lines\": [\n \"| Function type alias for transformations.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 42,\n \"end_line_number\": 46,\n \"line_range\": [\n 42,\n 46\n ],\n \"declaration_order_index\": 4,\n \"symbol_name\": \"Person\",\n \"qualified_name\": \"Person\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"data Person = Person\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Record type representing a person with name and age fields.\",\n \"attached_comment_lines\": [\n \"| Record type representing a person with name and age fields.\",\n \"Used as the primary entity throughout this module.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 43,\n \"end_line_number\": 43,\n \"line_range\": [\n 43,\n 43\n ],\n \"text\": \"^ Full name of the person.\",\n \"text_lines\": [\n \"^ Full name of the person.\"\n ]\n },\n {\n \"start_line_number\": 44,\n \"end_line_number\": 44,\n \"line_range\": [\n 44,\n 44\n ],\n \"text\": \"^ Age in years (non-negative).\",\n \"text_lines\": [\n \"^ Age in years (non-negative).\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 49,\n \"end_line_number\": 53,\n \"line_range\": [\n 49,\n 53\n ],\n \"declaration_order_index\": 5,\n \"symbol_name\": \"Tree\",\n \"qualified_name\": \"Tree\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"data Tree a\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Binary tree data structure with parameterized element type.\",\n \"attached_comment_lines\": [\n \"| Binary tree data structure with parameterized element type.\",\n \"Supports insertion, lookup, and fold operations.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 50,\n \"end_line_number\": 50,\n \"line_range\": [\n 50,\n 50\n ],\n \"text\": \"^ Empty tree (base case).\",\n \"text_lines\": [\n \"^ Empty tree (base case).\"\n ]\n },\n {\n \"start_line_number\": 51,\n \"end_line_number\": 51,\n \"line_range\": [\n 51,\n 51\n ],\n \"text\": \"^ Node with value and subtrees.\",\n \"text_lines\": [\n \"^ Node with value and subtrees.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 56,\n \"end_line_number\": 62,\n \"line_range\": [\n 56,\n 62\n ],\n \"declaration_order_index\": 6,\n \"symbol_name\": \"Expr\",\n \"qualified_name\": \"Expr\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"data Expr\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Expression AST for a simple calculator language.\",\n \"attached_comment_lines\": [\n \"| Expression AST for a simple calculator language.\",\n \"Demonstrates GADT-like pattern (standard ADT form).\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 57,\n \"end_line_number\": 57,\n \"line_range\": [\n 57,\n 57\n ],\n \"text\": \"^ Numeric literal.\",\n \"text_lines\": [\n \"^ Numeric literal.\"\n ]\n },\n {\n \"start_line_number\": 58,\n \"end_line_number\": 58,\n \"line_range\": [\n 58,\n 58\n ],\n \"text\": \"^ Addition of two expressions.\",\n \"text_lines\": [\n \"^ Addition of two expressions.\"\n ]\n },\n {\n \"start_line_number\": 59,\n \"end_line_number\": 59,\n \"line_range\": [\n 59,\n 59\n ],\n \"text\": \"^ Multiplication of two expressions.\",\n \"text_lines\": [\n \"^ Multiplication of two expressions.\"\n ]\n },\n {\n \"start_line_number\": 60,\n \"end_line_number\": 60,\n \"line_range\": [\n 60,\n 60\n ],\n \"text\": \"^ Negation of an expression.\",\n \"text_lines\": [\n \"^ Negation of an expression.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 64,\n \"end_line_number\": 68,\n \"line_range\": [\n 64,\n 68\n ],\n \"declaration_order_index\": 7,\n \"symbol_name\": \"Result\",\n \"qualified_name\": \"Result\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"data Result a\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Result type for operations that may fail.\",\n \"attached_comment_lines\": [\n \"| Result type for operations that may fail.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 65,\n \"end_line_number\": 65,\n \"line_range\": [\n 65,\n 65\n ],\n \"text\": \"^ Successful result carrying a value.\",\n \"text_lines\": [\n \"^ Successful result carrying a value.\"\n ]\n },\n {\n \"start_line_number\": 66,\n \"end_line_number\": 66,\n \"line_range\": [\n 66,\n 66\n ],\n \"text\": \"^ Error result with message.\",\n \"text_lines\": [\n \"^ Error result with message.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 72,\n \"end_line_number\": 79,\n \"line_range\": [\n 72,\n 79\n ],\n \"declaration_order_index\": 8,\n \"symbol_name\": \"Printable\",\n \"qualified_name\": \"Printable\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class Printable a where\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Typeclasses ────────────────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Typeclasses ────────────────────────────────────────────────────────\",\n \"| Typeclass for types that can be printed as formatted strings.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 73,\n \"end_line_number\": 73,\n \"line_range\": [\n 73,\n 73\n ],\n \"text\": \"| Convert a value to its formatted string representation.\",\n \"text_lines\": [\n \"| Convert a value to its formatted string representation.\"\n ]\n },\n {\n \"start_line_number\": 76,\n \"end_line_number\": 76,\n \"line_range\": [\n 76,\n 76\n ],\n \"text\": \"| Convert a value to a debug string (default implementation).\",\n \"text_lines\": [\n \"| Convert a value to a debug string (default implementation).\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 81,\n \"end_line_number\": 84,\n \"line_range\": [\n 81,\n 84\n ],\n \"declaration_order_index\": 9,\n \"symbol_name\": \"Serializable\",\n \"qualified_name\": \"Serializable\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class Serializable a where\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Typeclass for types that can be serialized to key-value pairs.\",\n \"attached_comment_lines\": [\n \"| Typeclass for types that can be serialized to key-value pairs.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 82,\n \"end_line_number\": 82,\n \"line_range\": [\n 82,\n 82\n ],\n \"text\": \"| Serialize a value to a list of key-value string pairs.\",\n \"text_lines\": [\n \"| Serialize a value to a list of key-value string pairs.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 112,\n \"end_line_number\": 112,\n \"line_range\": [\n 112,\n 112\n ],\n \"declaration_order_index\": 10,\n \"symbol_name\": \"greet\",\n \"qualified_name\": \"greet\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"greet :: String -> String\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@brief Produce a greeting string for a given name. @details Uses string concatenation with the (++) operator. @param name Input name value. @return...\",\n \"attached_comment_lines\": [\n \"@brief Produce a greeting string for a given name. @details Uses string concatenation with the (++) operator. @param name Input name value. @return Greeting message.\",\n \"Deterministic helper for basic string assembly.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 117,\n \"end_line_number\": 117,\n \"line_range\": [\n 117,\n 117\n ],\n \"declaration_order_index\": 11,\n \"symbol_name\": \"safeDiv\",\n \"qualified_name\": \"safeDiv\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"safeDiv :: Double -> Double -> Maybe Double\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@brief Safe division returning Nothing on division by zero. @details Demonstrates pattern guards for conditional logic. @param x Numerator value. @...\",\n \"attached_comment_lines\": [\n \"@brief Safe division returning Nothing on division by zero. @details Demonstrates pattern guards for conditional logic. @param x Numerator value. @return Maybe quotient.\",\n \"Returns Nothing when the denominator equals zero.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 123,\n \"end_line_number\": 123,\n \"line_range\": [\n 123,\n 123\n ],\n \"declaration_order_index\": 12,\n \"symbol_name\": \"eval\",\n \"qualified_name\": \"eval\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"eval :: Expr -> Double\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@brief Evaluate an expression AST to its numeric result. @details Recursively traverses the expression tree. @param expr Expression to evaluate. @r...\",\n \"attached_comment_lines\": [\n \"@brief Evaluate an expression AST to its numeric result. @details Recursively traverses the expression tree. @param expr Expression to evaluate. @return Numeric result.\",\n \"Handles literals, sums, products, and negations.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 131,\n \"end_line_number\": 131,\n \"line_range\": [\n 131,\n 131\n ],\n \"declaration_order_index\": 13,\n \"symbol_name\": \"processList\",\n \"qualified_name\": \"processList\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"processList :: [Int] -> [Int]\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@brief Process a list of integers with multiple filter stages. @details Removes duplicates, sorts, and filters positive values. @param xs Input int...\",\n \"attached_comment_lines\": [\n \"@brief Process a list of integers with multiple filter stages. @details Removes duplicates, sorts, and filters positive values. @param xs Input integer list. @return Processed integer list.\",\n \"Preserves deterministic ordering and positivity constraint.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 143,\n \"end_line_number\": 143,\n \"line_range\": [\n 143,\n 143\n ],\n \"declaration_order_index\": 14,\n \"symbol_name\": \"fibonacci\",\n \"qualified_name\": \"fibonacci\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fibonacci :: Int -> Integer\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@brief Compute the nth Fibonacci number using pattern matching. @details Uses accumulator recursion for efficiency. @param n Sequence index. @retur...\",\n \"attached_comment_lines\": [\n \"@brief Compute the nth Fibonacci number using pattern matching. @details Uses accumulator recursion for efficiency. @param n Sequence index. @return Fibonacci value at index n.\",\n \"Rejects negative input through an explicit error branch.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 155,\n \"end_line_number\": 155,\n \"line_range\": [\n 155,\n 155\n ],\n \"declaration_order_index\": 15,\n \"symbol_name\": \"insertTree\",\n \"qualified_name\": \"insertTree\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"insertTree :: (Ord a) => a -> Tree a -> Tree a\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Insert a value into a binary search tree.\",\n \"attached_comment_lines\": [\n \"| Insert a value into a binary search tree.\",\n \"Maintains BST ordering invariant.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 164,\n \"end_line_number\": 164,\n \"line_range\": [\n 164,\n 164\n ],\n \"declaration_order_index\": 16,\n \"symbol_name\": \"foldTree\",\n \"qualified_name\": \"foldTree\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"foldTree :: (b -> a -> b) -> b -> Tree a -> b\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Fold a tree to a single value using a combining function.\",\n \"attached_comment_lines\": [\n \"| Fold a tree to a single value using a combining function.\",\n \"Performs an in-order traversal.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 173,\n \"end_line_number\": 173,\n \"line_range\": [\n 173,\n 173\n ],\n \"declaration_order_index\": 17,\n \"symbol_name\": \"lookupConfig\",\n \"qualified_name\": \"lookupConfig\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"lookupConfig :: Config -> String -> Int -> Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Lookup a value in a config map with a default fallback.\",\n \"attached_comment_lines\": [\n \"| Lookup a value in a config map with a default fallback.\",\n \"Demonstrates Maybe handling with fromMaybe.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 178,\n \"end_line_number\": 178,\n \"line_range\": [\n 178,\n 178\n ],\n \"declaration_order_index\": 18,\n \"symbol_name\": \"applyN\",\n \"qualified_name\": \"applyN\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"applyN :: Int -> Transform a -> a -> a\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Apply a transformation function n times to an initial value.\",\n \"attached_comment_lines\": [\n \"| Apply a transformation function n times to an initial value.\",\n \"Higher-order function with explicit recursion.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 184,\n \"end_line_number\": 184,\n \"line_range\": [\n 184,\n 184\n ],\n \"declaration_order_index\": 19,\n \"symbol_name\": \"formatPersons\",\n \"qualified_name\": \"formatPersons\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"formatPersons :: (Printable a) => [a] -> String\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Format a list of persons as a comma-separated string.\",\n \"attached_comment_lines\": [\n \"| Format a list of persons as a comma-separated string.\",\n \"Combines typeclass method with list processing.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 189,\n \"end_line_number\": 189,\n \"line_range\": [\n 189,\n 189\n ],\n \"declaration_order_index\": 20,\n \"symbol_name\": \"safeCompute\",\n \"qualified_name\": \"safeCompute\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"safeCompute :: Double -> Double -> Double -> Maybe Double\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Monadic computation chaining multiple Maybe operations.\",\n \"attached_comment_lines\": [\n \"| Monadic computation chaining multiple Maybe operations.\",\n \"Returns Nothing if any step fails.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 197,\n \"end_line_number\": 197,\n \"line_range\": [\n 197,\n 197\n ],\n \"declaration_order_index\": 21,\n \"symbol_name\": \"Extra.One\",\n \"qualified_name\": \"Extra.One\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"module Extra.One where\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"{- coverage extension block -}\",\n \"attached_comment_lines\": [\n \"{- coverage extension block -}\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 198,\n \"end_line_number\": 198,\n \"line_range\": [\n 198,\n 198\n ],\n \"declaration_order_index\": 22,\n \"symbol_name\": \"Extra.Two\",\n \"qualified_name\": \"Extra.Two\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"module Extra.Two where\",\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\": 199,\n \"end_line_number\": 199,\n \"line_range\": [\n 199,\n 199\n ],\n \"declaration_order_index\": 23,\n \"symbol_name\": \"Extra.Three\",\n \"qualified_name\": \"Extra.Three\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"module Extra.Three where\",\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\": 200,\n \"end_line_number\": 200,\n \"line_range\": [\n 200,\n 200\n ],\n \"declaration_order_index\": 24,\n \"symbol_name\": \"Extra.Four\",\n \"qualified_name\": \"Extra.Four\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"module Extra.Four where\",\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\": 202,\n \"end_line_number\": 202,\n \"line_range\": [\n 202,\n 202\n ],\n \"declaration_order_index\": 25,\n \"symbol_name\": \"RequestId\",\n \"qualified_name\": \"RequestId\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"type RequestId = Int\",\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\": 203,\n \"end_line_number\": 203,\n \"line_range\": [\n 203,\n 203\n ],\n \"declaration_order_index\": 26,\n \"symbol_name\": \"ResponseId\",\n \"qualified_name\": \"ResponseId\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"type ResponseId = Int\",\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\": 204,\n \"end_line_number\": 204,\n \"line_range\": [\n 204,\n 204\n ],\n \"declaration_order_index\": 27,\n \"symbol_name\": \"Renderable\",\n \"qualified_name\": \"Renderable\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class Renderable a where\",\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\": 205,\n \"end_line_number\": 205,\n \"line_range\": [\n 205,\n 205\n ],\n \"declaration_order_index\": 28,\n \"symbol_name\": \"Parsable\",\n \"qualified_name\": \"Parsable\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class Parsable a where\",\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\": 206,\n \"end_line_number\": 206,\n \"line_range\": [\n 206,\n 206\n ],\n \"declaration_order_index\": 29,\n \"symbol_name\": \"Executable\",\n \"qualified_name\": \"Executable\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class Executable a where\",\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\": 207,\n \"end_line_number\": 208,\n \"line_range\": [\n 207,\n 208\n ],\n \"declaration_order_index\": 30,\n \"symbol_name\": \"Envelope\",\n \"qualified_name\": \"Envelope\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"data Envelope = Envelope String\",\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\": 215,\n \"end_line_number\": 215,\n \"line_range\": [\n 215,\n 215\n ],\n \"declaration_order_index\": 31,\n \"symbol_name\": \"reqCoverHaskell1\",\n \"qualified_name\": \"reqCoverHaskell1\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"reqCoverHaskell1 :: Int -> Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\\n--\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\\n--\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\\n--\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"value Input value for helper construct 1.\\n--\"\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\": 223,\n \"end_line_number\": 223,\n \"line_range\": [\n 223,\n 223\n ],\n \"declaration_order_index\": 32,\n \"symbol_name\": \"reqCoverHaskell2\",\n \"qualified_name\": \"reqCoverHaskell2\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"reqCoverHaskell2 :: Int -> Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 2.\\n--\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 2.\\n--\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 2.\\n--\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"value Input value for helper construct 2.\\n--\"\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\": 231,\n \"end_line_number\": 231,\n \"line_range\": [\n 231,\n 231\n ],\n \"declaration_order_index\": 33,\n \"symbol_name\": \"reqCoverHaskell3\",\n \"qualified_name\": \"reqCoverHaskell3\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"reqCoverHaskell3 :: Int -> Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 3.\\n--\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 3.\\n--\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 3.\\n--\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"value Input value for helper construct 3.\\n--\"\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\": 239,\n \"end_line_number\": 239,\n \"line_range\": [\n 239,\n 239\n ],\n \"declaration_order_index\": 34,\n \"symbol_name\": \"reqCoverHaskell4\",\n \"qualified_name\": \"reqCoverHaskell4\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"reqCoverHaskell4 :: Int -> Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 4.\\n--\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 4.\\n--\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 4.\\n--\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"value Input value for helper construct 4.\\n--\"\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\": 247,\n \"end_line_number\": 247,\n \"line_range\": [\n 247,\n 247\n ],\n \"declaration_order_index\": 35,\n \"symbol_name\": \"reqCoverHaskell5\",\n \"qualified_name\": \"reqCoverHaskell5\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"reqCoverHaskell5 :: Int -> Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 5.\\n--\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 5.\\n--\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 5.\\n--\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"value Input value for helper construct 5.\\n--\"\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\": 2,\n \"end_line_number\": 2,\n \"line_range\": [\n 2,\n 2\n ],\n \"text\": \"@brief Comprehensive Haskell test fixture for parser validation.\",\n \"text_lines\": [\n \"@brief Comprehensive Haskell test fixture for parser validation.\"\n ]\n },\n {\n \"start_line_number\": 3,\n \"end_line_number\": 3,\n \"line_range\": [\n 3,\n 3\n ],\n \"text\": \"@details Covers typeclasses with instances, GADTs, type families,\",\n \"text_lines\": [\n \"@details Covers typeclasses with instances, GADTs, type families,\"\n ]\n },\n {\n \"start_line_number\": 4,\n \"end_line_number\": 4,\n \"line_range\": [\n 4,\n 4\n ],\n \"text\": \"monadic computations, applicatives, pattern guards,\",\n \"text_lines\": [\n \"monadic computations, applicatives, pattern guards,\"\n ]\n },\n {\n \"start_line_number\": 5,\n \"end_line_number\": 5,\n \"line_range\": [\n 5,\n 5\n ],\n \"text\": \"where clauses, let bindings, and deriving strategies.\",\n \"text_lines\": [\n \"where clauses, let bindings, and deriving strategies.\"\n ]\n },\n {\n \"start_line_number\": 6,\n \"end_line_number\": 6,\n \"line_range\": [\n 6,\n 6\n ],\n \"text\": \"Single line comment\",\n \"text_lines\": [\n \"Single line comment\"\n ]\n },\n {\n \"start_line_number\": 38,\n \"end_line_number\": 38,\n \"line_range\": [\n 38,\n 38\n ],\n \"text\": \"── Data types ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Data types ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 73,\n \"end_line_number\": 73,\n \"line_range\": [\n 73,\n 73\n ],\n \"text\": \"| Convert a value to its formatted string representation.\",\n \"text_lines\": [\n \"| Convert a value to its formatted string representation.\"\n ]\n },\n {\n \"start_line_number\": 76,\n \"end_line_number\": 76,\n \"line_range\": [\n 76,\n 76\n ],\n \"text\": \"| Convert a value to a debug string (default implementation).\",\n \"text_lines\": [\n \"| Convert a value to a debug string (default implementation).\"\n ]\n },\n {\n \"start_line_number\": 82,\n \"end_line_number\": 82,\n \"line_range\": [\n 82,\n 82\n ],\n \"text\": \"| Serialize a value to a list of key-value string pairs.\",\n \"text_lines\": [\n \"| Serialize a value to a list of key-value string pairs.\"\n ]\n },\n {\n \"start_line_number\": 85,\n \"end_line_number\": 85,\n \"line_range\": [\n 85,\n 85\n ],\n \"text\": \"── Typeclass instances ────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Typeclass instances ────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 87,\n \"end_line_number\": 87,\n \"line_range\": [\n 87,\n 87\n ],\n \"text\": \"| Printable instance for Person; formats as \\\"Name (Age)\\\".\",\n \"text_lines\": [\n \"| Printable instance for Person; formats as \\\"Name (Age)\\\".\"\n ]\n },\n {\n \"start_line_number\": 91,\n \"end_line_number\": 91,\n \"line_range\": [\n 91,\n 91\n ],\n \"text\": \"| Serializable instance for Person.\",\n \"text_lines\": [\n \"| Serializable instance for Person.\"\n ]\n },\n {\n \"start_line_number\": 98,\n \"end_line_number\": 98,\n \"line_range\": [\n 98,\n 98\n ],\n \"text\": \"| Functor instance for Tree enabling fmap over tree nodes.\",\n \"text_lines\": [\n \"| Functor instance for Tree enabling fmap over tree nodes.\"\n ]\n },\n {\n \"start_line_number\": 103,\n \"end_line_number\": 103,\n \"line_range\": [\n 103,\n 103\n ],\n \"text\": \"| Functor instance for Result.\",\n \"text_lines\": [\n \"| Functor instance for Result.\"\n ]\n },\n {\n \"start_line_number\": 108,\n \"end_line_number\": 108,\n \"line_range\": [\n 108,\n 108\n ],\n \"text\": \"── Functions ──────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Functions ──────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 134,\n \"line_range\": [\n 134,\n 134\n ],\n \"text\": \"Remove duplicates first\",\n \"text_lines\": [\n \"Remove duplicates first\"\n ]\n },\n {\n \"start_line_number\": 136,\n \"end_line_number\": 136,\n \"line_range\": [\n 136,\n 136\n ],\n \"text\": \"Sort in ascending order\",\n \"text_lines\": [\n \"Sort in ascending order\"\n ]\n },\n {\n \"start_line_number\": 138,\n \"end_line_number\": 138,\n \"line_range\": [\n 138,\n 138\n ],\n \"text\": \"Keep only positive values\",\n \"text_lines\": [\n \"Keep only positive values\"\n ]\n },\n {\n \"start_line_number\": 191,\n \"end_line_number\": 191,\n \"line_range\": [\n 191,\n 191\n ],\n \"text\": \"Each step may fail (division by zero)\",\n \"text_lines\": [\n \"Each step may fail (division by zero)\"\n ]\n },\n {\n \"start_line_number\": 209,\n \"end_line_number\": 209,\n \"line_range\": [\n 209,\n 209\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 210,\n \"end_line_number\": 210,\n \"line_range\": [\n 210,\n 210\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\": 211,\n \"end_line_number\": 211,\n \"line_range\": [\n 211,\n 211\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 218,\n \"end_line_number\": 218,\n \"line_range\": [\n 218,\n 218\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\": 219,\n \"end_line_number\": 219,\n \"line_range\": [\n 219,\n 219\n ],\n \"text\": \"@brief Coverage helper construct 2.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 226,\n \"end_line_number\": 226,\n \"line_range\": [\n 226,\n 226\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\": 227,\n \"end_line_number\": 227,\n \"line_range\": [\n 227,\n 227\n ],\n \"text\": \"@brief Coverage helper construct 3.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 234,\n \"end_line_number\": 234,\n \"line_range\": [\n 234,\n 234\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\": 235,\n \"end_line_number\": 235,\n \"line_range\": [\n 235,\n 235\n ],\n \"text\": \"@brief Coverage helper construct 4.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 242,\n \"end_line_number\": 242,\n \"line_range\": [\n 242,\n 242\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\": 243,\n \"end_line_number\": 243,\n \"line_range\": [\n 243,\n 243\n ],\n \"text\": \"@brief Coverage helper construct 5.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 250,\n \"end_line_number\": 250,\n \"line_range\": [\n 250,\n 250\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_java.java\"\n ],\n \"requested_canonical_paths\": [\n \"tests/fixtures/fixture_java.java\"\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\": 55,\n \"total_import_count\": 7,\n \"total_comment_count\": 66,\n \"total_standalone_comment_count\": 26,\n \"total_doxygen_field_count\": 95,\n \"symbol_kind_counts\": {\n \"CLASS\": 7,\n \"CONSTANT\": 5,\n \"ENUM\": 5,\n \"FUNCTION\": 28,\n \"INTERFACE\": 5,\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_java.java\"\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_java.java\",\n \"relative_path\": \"tests/fixtures/fixture_java.java\",\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\": 430,\n \"line_range\": [\n 1,\n 430\n ],\n \"request_index\": 0,\n \"input_path\": \"tests/fixtures/fixture_java.java\",\n \"canonical_path\": \"tests/fixtures/fixture_java.java\",\n \"absolute_path\": \"<ROOT>/tests/fixtures/fixture_java.java\",\n \"file_name\": \"fixture_java.java\",\n \"file_extension\": \".java\",\n \"language_id\": \"java\",\n \"language_name\": \"Java\",\n \"status\": \"analyzed\",\n \"exists\": true,\n \"is_file\": true,\n \"import_count\": 7,\n \"symbol_count\": 55,\n \"comment_count\": 66,\n \"standalone_comment_count\": 26,\n \"doxygen_field_count\": 95,\n \"file_doxygen\": {\n \"brief\": [\n \"Comprehensive Java test fixture for parser validation.\"\n ],\n \"details\": [\n \"Covers generics with wildcards, sealed classes, records, inner classes,\\nanonymous classes, lambdas, method references, switch expressions,\\ntry-with-resources, annotations, and default interface methods.\"\n ]\n },\n \"imports\": [\n {\n \"start_line_number\": 13,\n \"end_line_number\": 13,\n \"line_range\": [\n 13,\n 13\n ],\n \"import_name\": \"java.util.List\",\n \"statement_text\": \"import java.util.List;\"\n },\n {\n \"start_line_number\": 14,\n \"end_line_number\": 14,\n \"line_range\": [\n 14,\n 14\n ],\n \"import_name\": \"java.util.Map\",\n \"statement_text\": \"import java.util.Map;\"\n },\n {\n \"start_line_number\": 15,\n \"end_line_number\": 15,\n \"line_range\": [\n 15,\n 15\n ],\n \"import_name\": \"java.util.Optional\",\n \"statement_text\": \"import java.util.Optional;\"\n },\n {\n \"start_line_number\": 16,\n \"end_line_number\": 16,\n \"line_range\": [\n 16,\n 16\n ],\n \"import_name\": \"java.util.function.Function\",\n \"statement_text\": \"import java.util.function.Function;\"\n },\n {\n \"start_line_number\": 17,\n \"end_line_number\": 17,\n \"line_range\": [\n 17,\n 17\n ],\n \"import_name\": \"java.util.function.Predicate\",\n \"statement_text\": \"import java.util.function.Predicate;\"\n },\n {\n \"start_line_number\": 18,\n \"end_line_number\": 18,\n \"line_range\": [\n 18,\n 18\n ],\n \"import_name\": \"java.util.stream.Collectors\",\n \"statement_text\": \"import java.util.stream.Collectors;\"\n },\n {\n \"start_line_number\": 19,\n \"end_line_number\": 19,\n \"line_range\": [\n 19,\n 19\n ],\n \"import_name\": \"java.lang.Math.PI\",\n \"statement_text\": \"import static java.lang.Math.PI;\"\n }\n ],\n \"symbols\": [\n {\n \"start_line_number\": 11,\n \"end_line_number\": 29,\n \"line_range\": [\n 11,\n 29\n ],\n \"declaration_order_index\": 0,\n \"symbol_name\": \"com.example.app\",\n \"qualified_name\": \"com.example.app\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package com.example.app\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Single line comment\",\n \"attached_comment_lines\": [\n \"Single line comment\",\n \"Multi-line\",\n \"comment\"\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\": \"── Annotation ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Annotation ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 23,\n \"end_line_number\": 26,\n \"line_range\": [\n 23,\n 26\n ],\n \"text\": \"@brief Marks a method as requiring authentication before invocation. @param role The minimum role level required for access.\",\n \"text_lines\": [\n \"@brief Marks a method as requiring authentication before invocation. @param role The minimum role level required for access.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 28,\n \"end_line_number\": 39,\n \"line_range\": [\n 28,\n 39\n ],\n \"declaration_order_index\": 1,\n \"symbol_name\": \"role\",\n \"qualified_name\": \"role\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"String role() default \\\"user\\\"\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"decorator_text\": \"@interface RequiresAuth {\",\n \"attached_comment_summary_text\": \"@brief Marks a method as requiring authentication before invocation. @param role The minimum role level required for access.\",\n \"attached_comment_lines\": [\n \"@brief Marks a method as requiring authentication before invocation.\",\n \"@param role The minimum role level required for access.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 31,\n \"end_line_number\": 31,\n \"line_range\": [\n 31,\n 31\n ],\n \"text\": \"── Main class ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Main class ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 33,\n \"end_line_number\": 37,\n \"line_range\": [\n 33,\n 37\n ],\n \"text\": \"@class MyClass @brief Primary class demonstrating various Java constructs. @param <T> Generic type parameter for flexible data handling.\",\n \"text_lines\": [\n \"@class MyClass @brief Primary class demonstrating various Java constructs. @param <T> Generic type parameter for flexible data handling.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 39,\n \"end_line_number\": 165,\n \"line_range\": [\n 39,\n 165\n ],\n \"declaration_order_index\": 2,\n \"symbol_name\": \"MyClass\",\n \"qualified_name\": \"MyClass\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public class MyClass<T extends Comparable<T>>\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"MAX_SIZE\",\n \"greet\",\n \"helper\",\n \"findFirst\",\n \"map\",\n \"sumWildcard\"\n ],\n \"child_qualified_names\": [\n \"MyClass.MAX_SIZE\",\n \"MyClass.greet\",\n \"MyClass.helper\",\n \"MyClass.findFirst\",\n \"MyClass.map\",\n \"MyClass.sumWildcard\"\n ],\n \"depth\": 0,\n \"inherits_text\": \"Comparable<T>>\",\n \"decorator_text\": \"@SuppressWarnings(\\\"unchecked\\\")\",\n \"attached_comment_summary_text\": \"Maximum buffer size constant.\",\n \"doxygen\": {\n \"brief\": [\n \"Maximum buffer size constant.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 41,\n \"end_line_number\": 41,\n \"line_range\": [\n 41,\n 41\n ],\n \"text\": \"@brief Maximum buffer size constant.\",\n \"text_lines\": [\n \"@brief Maximum buffer size constant.\"\n ]\n },\n {\n \"start_line_number\": 44,\n \"end_line_number\": 44,\n \"line_range\": [\n 44,\n 44\n ],\n \"text\": \"@brief Type-safe internal storage for items.\",\n \"text_lines\": [\n \"@brief Type-safe internal storage for items.\"\n ]\n },\n {\n \"start_line_number\": 47,\n \"end_line_number\": 50,\n \"line_range\": [\n 47,\n 50\n ],\n \"text\": \"@brief Construct MyClass with an initial item list. @param items The starting collection of items.\",\n \"text_lines\": [\n \"@brief Construct MyClass with an initial item list. @param items The starting collection of items.\"\n ]\n },\n {\n \"start_line_number\": 55,\n \"end_line_number\": 58,\n \"line_range\": [\n 55,\n 58\n ],\n \"text\": \"@brief Greet a person by name on standard output. @param name The person's name; must not be null.\",\n \"text_lines\": [\n \"@brief Greet a person by name on standard output. @param name The person's name; must not be null.\"\n ]\n },\n {\n \"start_line_number\": 60,\n \"end_line_number\": 60,\n \"line_range\": [\n 60,\n 60\n ],\n \"text\": \"Null check before output\",\n \"text_lines\": [\n \"Null check before output\"\n ]\n },\n {\n \"start_line_number\": 67,\n \"end_line_number\": 70,\n \"line_range\": [\n 67,\n 70\n ],\n \"text\": \"@brief Helper method returning a status string. @return Always returns \\\"ok\\\".\",\n \"text_lines\": [\n \"@brief Helper method returning a status string. @return Always returns \\\"ok\\\".\"\n ]\n },\n {\n \"start_line_number\": 75,\n \"end_line_number\": 79,\n \"line_range\": [\n 75,\n 79\n ],\n \"text\": \"@brief Find the first item matching a predicate. @param predicate Filter condition for items. @return Optional containing the first match, or empty.\",\n \"text_lines\": [\n \"@brief Find the first item matching a predicate. @param predicate Filter condition for items. @return Optional containing the first match, or empty.\"\n ]\n },\n {\n \"start_line_number\": 82,\n \"end_line_number\": 82,\n \"line_range\": [\n 82,\n 82\n ],\n \"text\": \"Test each item against predicate\",\n \"text_lines\": [\n \"Test each item against predicate\"\n ]\n },\n {\n \"start_line_number\": 90,\n \"end_line_number\": 95,\n \"line_range\": [\n 90,\n 95\n ],\n \"text\": \"@brief Transform all items using a mapping function. @param <R> The result type after transformation. @param mapper Function to apply to each item. @return List of transformed results.\",\n \"text_lines\": [\n \"@brief Transform all items using a mapping function. @param <R> The result type after transformation. @param mapper Function to apply to each item. @return List of transformed results.\"\n ]\n },\n {\n \"start_line_number\": 102,\n \"end_line_number\": 106,\n \"line_range\": [\n 102,\n 106\n ],\n \"text\": \"@brief Process items with a wildcard-bounded list. @param source List of items extending Number. @return Sum of all numeric values as double.\",\n \"text_lines\": [\n \"@brief Process items with a wildcard-bounded list. @param source List of items extending Number. @return Sum of all numeric values as double.\"\n ]\n },\n {\n \"start_line_number\": 115,\n \"end_line_number\": 115,\n \"line_range\": [\n 115,\n 115\n ],\n \"text\": \"── Inner class ────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Inner class ────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 117,\n \"end_line_number\": 120,\n \"line_range\": [\n 117,\n 120\n ],\n \"text\": \"@class Builder @brief Inner builder class for constructing MyClass instances.\",\n \"text_lines\": [\n \"@class Builder @brief Inner builder class for constructing MyClass instances.\"\n ]\n },\n {\n \"start_line_number\": 124,\n \"end_line_number\": 128,\n \"line_range\": [\n 124,\n 128\n ],\n \"text\": \"@brief Add an item to the builder. @param item Item to include in the built instance. @return This builder for chaining.\",\n \"text_lines\": [\n \"@brief Add an item to the builder. @param item Item to include in the built instance. @return This builder for chaining.\"\n ]\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 137,\n \"line_range\": [\n 134,\n 137\n ],\n \"text\": \"@brief Finalize and create the MyClass instance. @return A new MyClass populated with accumulated items.\",\n \"text_lines\": [\n \"@brief Finalize and create the MyClass instance. @return A new MyClass populated with accumulated items.\"\n ]\n },\n {\n \"start_line_number\": 143,\n \"end_line_number\": 143,\n \"line_range\": [\n 143,\n 143\n ],\n \"text\": \"── Static nested class ────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Static nested class ────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 145,\n \"end_line_number\": 148,\n \"line_range\": [\n 145,\n 148\n ],\n \"text\": \"@class Config @brief Static configuration holder with validation.\",\n \"text_lines\": [\n \"@class Config @brief Static configuration holder with validation.\"\n ]\n },\n {\n \"start_line_number\": 150,\n \"end_line_number\": 150,\n \"line_range\": [\n 150,\n 150\n ],\n \"text\": \"@brief Configuration key string.\",\n \"text_lines\": [\n \"@brief Configuration key string.\"\n ]\n },\n {\n \"start_line_number\": 152,\n \"end_line_number\": 152,\n \"line_range\": [\n 152,\n 152\n ],\n \"text\": \"@brief Configuration value.\",\n \"text_lines\": [\n \"@brief Configuration value.\"\n ]\n },\n {\n \"start_line_number\": 155,\n \"end_line_number\": 159,\n \"line_range\": [\n 155,\n 159\n ],\n \"text\": \"@brief Construct a Config entry. @param key The configuration key. @param value The associated value.\",\n \"text_lines\": [\n \"@brief Construct a Config entry. @param key The configuration key. @param value The associated value.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 62,\n \"text\": \"return;\"\n },\n {\n \"line_number\": 72,\n \"text\": \"return \\\"ok\\\";\"\n },\n {\n \"line_number\": 84,\n \"text\": \"return Optional.of(item);\"\n },\n {\n \"line_number\": 87,\n \"text\": \"return Optional.empty();\"\n },\n {\n \"line_number\": 97,\n \"text\": \"return items.stream()\"\n },\n {\n \"line_number\": 112,\n \"text\": \"return total;\"\n },\n {\n \"line_number\": 131,\n \"text\": \"return this;\"\n },\n {\n \"line_number\": 139,\n \"text\": \"return new MyClass<>(pending);\"\n }\n ]\n },\n {\n \"start_line_number\": 42,\n \"end_line_number\": 42,\n \"line_range\": [\n 42,\n 42\n ],\n \"declaration_order_index\": 3,\n \"symbol_name\": \"MAX_SIZE\",\n \"qualified_name\": \"MyClass.MAX_SIZE\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"public static final int MAX_SIZE = 100\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"MyClass\",\n \"parent_qualified_name\": \"MyClass\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Maximum buffer size constant. */\",\n \"doxygen\": {\n \"brief\": [\n \"Maximum buffer size constant. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 51,\n \"end_line_number\": 53,\n \"line_range\": [\n 51,\n 53\n ],\n \"declaration_order_index\": 4,\n \"symbol_name\": \"MyClass\",\n \"qualified_name\": \"MyClass\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public MyClass(List<T> items)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"MyClass\",\n \"child_symbol_names\": [\n \"MAX_SIZE\",\n \"greet\",\n \"helper\",\n \"findFirst\",\n \"map\",\n \"sumWildcard\"\n ],\n \"child_qualified_names\": [\n \"MyClass.MAX_SIZE\",\n \"MyClass.greet\",\n \"MyClass.helper\",\n \"MyClass.findFirst\",\n \"MyClass.map\",\n \"MyClass.sumWildcard\"\n ],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Construct MyClass with an initial item list.\",\n \"doxygen\": {\n \"brief\": [\n \"Construct MyClass with an initial item list.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"items\",\n \"description\": \"The starting collection of items.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 59,\n \"end_line_number\": 65,\n \"line_range\": [\n 59,\n 65\n ],\n \"declaration_order_index\": 5,\n \"symbol_name\": \"greet\",\n \"qualified_name\": \"MyClass.greet\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public void greet(String name)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"MyClass\",\n \"parent_qualified_name\": \"MyClass\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Greet a person by name on standard output.\",\n \"doxygen\": {\n \"brief\": [\n \"Greet a person by name on standard output.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"description\": \"The person's name; must not be null.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 60,\n \"end_line_number\": 60,\n \"line_range\": [\n 60,\n 60\n ],\n \"text\": \"Null check before output\",\n \"text_lines\": [\n \"Null check before output\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 62,\n \"text\": \"return;\"\n }\n ]\n },\n {\n \"start_line_number\": 71,\n \"end_line_number\": 73,\n \"line_range\": [\n 71,\n 73\n ],\n \"declaration_order_index\": 6,\n \"symbol_name\": \"helper\",\n \"qualified_name\": \"MyClass.helper\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"private static String helper()\",\n \"visibility\": \"priv\",\n \"parent_symbol_name\": \"MyClass\",\n \"parent_qualified_name\": \"MyClass\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Helper method returning a status string.\",\n \"doxygen\": {\n \"brief\": [\n \"Helper method returning a status string.\"\n ],\n \"returns\": [\n \"Always returns \\\"ok\\\".\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 72,\n \"text\": \"return \\\"ok\\\";\"\n }\n ]\n },\n {\n \"start_line_number\": 80,\n \"end_line_number\": 88,\n \"line_range\": [\n 80,\n 88\n ],\n \"declaration_order_index\": 7,\n \"symbol_name\": \"findFirst\",\n \"qualified_name\": \"MyClass.findFirst\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public Optional<T> findFirst(Predicate<T> predicate)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"MyClass\",\n \"parent_qualified_name\": \"MyClass\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Find the first item matching a predicate.\",\n \"doxygen\": {\n \"brief\": [\n \"Find the first item matching a predicate.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"predicate\",\n \"description\": \"Filter condition for items.\"\n }\n ],\n \"returns\": [\n \"Optional containing the first match, or empty.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 82,\n \"end_line_number\": 82,\n \"line_range\": [\n 82,\n 82\n ],\n \"text\": \"Test each item against predicate\",\n \"text_lines\": [\n \"Test each item against predicate\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 84,\n \"text\": \"return Optional.of(item);\"\n },\n {\n \"line_number\": 87,\n \"text\": \"return Optional.empty();\"\n }\n ]\n },\n {\n \"start_line_number\": 96,\n \"end_line_number\": 100,\n \"line_range\": [\n 96,\n 100\n ],\n \"declaration_order_index\": 8,\n \"symbol_name\": \"map\",\n \"qualified_name\": \"MyClass.map\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public <R> List<R> map(Function<T, R> mapper)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"MyClass\",\n \"parent_qualified_name\": \"MyClass\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Transform all items using a mapping function.\",\n \"doxygen\": {\n \"brief\": [\n \"Transform all items using a mapping function.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"<R>\",\n \"description\": \"The result type after transformation.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"mapper\",\n \"description\": \"Function to apply 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\": 97,\n \"text\": \"return items.stream()\"\n }\n ]\n },\n {\n \"start_line_number\": 107,\n \"end_line_number\": 113,\n \"line_range\": [\n 107,\n 113\n ],\n \"declaration_order_index\": 9,\n \"symbol_name\": \"sumWildcard\",\n \"qualified_name\": \"MyClass.sumWildcard\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public double sumWildcard(List<? extends Number> source)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"MyClass\",\n \"parent_qualified_name\": \"MyClass\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Process items with a wildcard-bounded list.\",\n \"doxygen\": {\n \"brief\": [\n \"Process items with a wildcard-bounded list.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"source\",\n \"description\": \"List of items extending Number.\"\n }\n ],\n \"returns\": [\n \"Sum of all numeric values as double.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 112,\n \"text\": \"return total;\"\n }\n ]\n },\n {\n \"start_line_number\": 121,\n \"end_line_number\": 141,\n \"line_range\": [\n 121,\n 141\n ],\n \"declaration_order_index\": 10,\n \"symbol_name\": \"Builder\",\n \"qualified_name\": \"Builder\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public class Builder\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"add\",\n \"build\"\n ],\n \"child_qualified_names\": [\n \"Builder.add\",\n \"Builder.build\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Inner builder class for constructing MyClass instances.\",\n \"doxygen\": {\n \"brief\": [\n \"Inner builder class for constructing MyClass instances.\",\n \"Add an item to the builder.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"item\",\n \"description\": \"Item to include in the built instance.\"\n }\n ],\n \"returns\": [\n \"This builder for chaining.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 124,\n \"end_line_number\": 128,\n \"line_range\": [\n 124,\n 128\n ],\n \"text\": \"@brief Add an item to the builder. @param item Item to include in the built instance. @return This builder for chaining.\",\n \"text_lines\": [\n \"@brief Add an item to the builder. @param item Item to include in the built instance. @return This builder for chaining.\"\n ]\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 137,\n \"line_range\": [\n 134,\n 137\n ],\n \"text\": \"@brief Finalize and create the MyClass instance. @return A new MyClass populated with accumulated items.\",\n \"text_lines\": [\n \"@brief Finalize and create the MyClass instance. @return A new MyClass populated with accumulated items.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 131,\n \"text\": \"return this;\"\n },\n {\n \"line_number\": 139,\n \"text\": \"return new MyClass<>(pending);\"\n }\n ]\n },\n {\n \"start_line_number\": 129,\n \"end_line_number\": 132,\n \"line_range\": [\n 129,\n 132\n ],\n \"declaration_order_index\": 11,\n \"symbol_name\": \"add\",\n \"qualified_name\": \"Builder.add\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public Builder add(T item)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Builder\",\n \"parent_qualified_name\": \"Builder\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Add an item to the builder.\",\n \"doxygen\": {\n \"brief\": [\n \"Add an item to the builder.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"item\",\n \"description\": \"Item to include in the built instance.\"\n }\n ],\n \"returns\": [\n \"This builder for chaining.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 131,\n \"text\": \"return this;\"\n }\n ]\n },\n {\n \"start_line_number\": 138,\n \"end_line_number\": 140,\n \"line_range\": [\n 138,\n 140\n ],\n \"declaration_order_index\": 12,\n \"symbol_name\": \"build\",\n \"qualified_name\": \"Builder.build\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public MyClass<T> build()\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Builder\",\n \"parent_qualified_name\": \"Builder\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Finalize and create the MyClass instance.\",\n \"doxygen\": {\n \"brief\": [\n \"Finalize and create the MyClass instance.\"\n ],\n \"returns\": [\n \"A new MyClass populated with accumulated items.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 139,\n \"text\": \"return new MyClass<>(pending);\"\n }\n ]\n },\n {\n \"start_line_number\": 149,\n \"end_line_number\": 164,\n \"line_range\": [\n 149,\n 164\n ],\n \"declaration_order_index\": 13,\n \"symbol_name\": \"Config\",\n \"qualified_name\": \"Config\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public static class Config\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Static configuration holder with validation.\",\n \"doxygen\": {\n \"brief\": [\n \"Static configuration holder with validation.\",\n \"Configuration key string.\",\n \"Configuration value.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 150,\n \"end_line_number\": 150,\n \"line_range\": [\n 150,\n 150\n ],\n \"text\": \"@brief Configuration key string.\",\n \"text_lines\": [\n \"@brief Configuration key string.\"\n ]\n },\n {\n \"start_line_number\": 152,\n \"end_line_number\": 152,\n \"line_range\": [\n 152,\n 152\n ],\n \"text\": \"@brief Configuration value.\",\n \"text_lines\": [\n \"@brief Configuration value.\"\n ]\n },\n {\n \"start_line_number\": 155,\n \"end_line_number\": 159,\n \"line_range\": [\n 155,\n 159\n ],\n \"text\": \"@brief Construct a Config entry. @param key The configuration key. @param value The associated value.\",\n \"text_lines\": [\n \"@brief Construct a Config entry. @param key The configuration key. @param value The associated value.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 160,\n \"end_line_number\": 163,\n \"line_range\": [\n 160,\n 163\n ],\n \"declaration_order_index\": 14,\n \"symbol_name\": \"Config\",\n \"qualified_name\": \"Config\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public Config(String key, Object value)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Config\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Construct a Config entry.\",\n \"doxygen\": {\n \"brief\": [\n \"Construct a Config entry.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"key\",\n \"description\": \"The configuration key.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"The associated value.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 173,\n \"end_line_number\": 196,\n \"line_range\": [\n 173,\n 196\n ],\n \"declaration_order_index\": 15,\n \"symbol_name\": \"Greeter\",\n \"qualified_name\": \"Greeter\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"public interface Greeter\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"sayHello\",\n \"simple\"\n ],\n \"child_qualified_names\": [\n \"Greeter.sayHello\",\n \"Greeter.simple\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Functional interface for greeting operations.\",\n \"doxygen\": {\n \"brief\": [\n \"Functional interface for greeting operations.\",\n \"Perform a greeting to the named person.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"description\": \"Recipient of the greeting.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 174,\n \"end_line_number\": 177,\n \"line_range\": [\n 174,\n 177\n ],\n \"text\": \"@brief Perform a greeting to the named person. @param name Recipient of the greeting.\",\n \"text_lines\": [\n \"@brief Perform a greeting to the named person. @param name Recipient of the greeting.\"\n ]\n },\n {\n \"start_line_number\": 180,\n \"end_line_number\": 183,\n \"line_range\": [\n 180,\n 183\n ],\n \"text\": \"@brief Default farewell method with implementation. @param name Person to bid farewell.\",\n \"text_lines\": [\n \"@brief Default farewell method with implementation. @param name Person to bid farewell.\"\n ]\n },\n {\n \"start_line_number\": 188,\n \"end_line_number\": 191,\n \"line_range\": [\n 188,\n 191\n ],\n \"text\": \"@brief Static factory creating a simple Greeter. @return A Greeter that prints to stdout.\",\n \"text_lines\": [\n \"@brief Static factory creating a simple Greeter. @return A Greeter that prints to stdout.\"\n ]\n },\n {\n \"start_line_number\": 193,\n \"end_line_number\": 193,\n \"line_range\": [\n 193,\n 193\n ],\n \"text\": \"Lambda implementing the functional interface\",\n \"text_lines\": [\n \"Lambda implementing the functional interface\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 194,\n \"text\": \"return name -> System.out.println(\\\"Hi, \\\" + name);\"\n }\n ]\n },\n {\n \"start_line_number\": 178,\n \"end_line_number\": 186,\n \"line_range\": [\n 178,\n 186\n ],\n \"declaration_order_index\": 16,\n \"symbol_name\": \"sayHello\",\n \"qualified_name\": \"Greeter.sayHello\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"void sayHello(String name)\",\n \"parent_symbol_name\": \"Greeter\",\n \"parent_qualified_name\": \"Greeter\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Perform a greeting to the named person.\",\n \"doxygen\": {\n \"brief\": [\n \"Perform a greeting to the named person.\",\n \"Default farewell method with implementation.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"description\": \"Recipient of the greeting.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"description\": \"Person to bid farewell.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 180,\n \"end_line_number\": 183,\n \"line_range\": [\n 180,\n 183\n ],\n \"text\": \"@brief Default farewell method with implementation. @param name Person to bid farewell.\",\n \"text_lines\": [\n \"@brief Default farewell method with implementation. @param name Person to bid farewell.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 192,\n \"end_line_number\": 195,\n \"line_range\": [\n 192,\n 195\n ],\n \"declaration_order_index\": 17,\n \"symbol_name\": \"simple\",\n \"qualified_name\": \"Greeter.simple\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"static Greeter simple()\",\n \"parent_symbol_name\": \"Greeter\",\n \"parent_qualified_name\": \"Greeter\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Static factory creating a simple Greeter.\",\n \"doxygen\": {\n \"brief\": [\n \"Static factory creating a simple Greeter.\"\n ],\n \"returns\": [\n \"A Greeter that prints to stdout.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 193,\n \"end_line_number\": 193,\n \"line_range\": [\n 193,\n 193\n ],\n \"text\": \"Lambda implementing the functional interface\",\n \"text_lines\": [\n \"Lambda implementing the functional interface\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 194,\n \"text\": \"return name -> System.out.println(\\\"Hi, \\\" + name);\"\n }\n ]\n },\n {\n \"start_line_number\": 204,\n \"end_line_number\": 230,\n \"line_range\": [\n 204,\n 230\n ],\n \"declaration_order_index\": 18,\n \"symbol_name\": \"Color\",\n \"qualified_name\": \"Color\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"public enum Color\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"getHex\"\n ],\n \"child_qualified_names\": [\n \"Color.getHex\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Color enum with associated hex values and behavior.\",\n \"doxygen\": {\n \"brief\": [\n \"Color enum with associated hex values and behavior.\",\n \"Red color with hex #FF0000.\",\n \"Green color with hex #00FF00.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 205,\n \"end_line_number\": 205,\n \"line_range\": [\n 205,\n 205\n ],\n \"text\": \"@brief Red color with hex #FF0000.\",\n \"text_lines\": [\n \"@brief Red color with hex #FF0000.\"\n ]\n },\n {\n \"start_line_number\": 207,\n \"end_line_number\": 207,\n \"line_range\": [\n 207,\n 207\n ],\n \"text\": \"@brief Green color with hex #00FF00.\",\n \"text_lines\": [\n \"@brief Green color with hex #00FF00.\"\n ]\n },\n {\n \"start_line_number\": 209,\n \"end_line_number\": 209,\n \"line_range\": [\n 209,\n 209\n ],\n \"text\": \"@brief Blue color with hex #0000FF.\",\n \"text_lines\": [\n \"@brief Blue color with hex #0000FF.\"\n ]\n },\n {\n \"start_line_number\": 212,\n \"end_line_number\": 212,\n \"line_range\": [\n 212,\n 212\n ],\n \"text\": \"@brief The hexadecimal color code.\",\n \"text_lines\": [\n \"@brief The hexadecimal color code.\"\n ]\n },\n {\n \"start_line_number\": 215,\n \"end_line_number\": 218,\n \"line_range\": [\n 215,\n 218\n ],\n \"text\": \"@brief Private constructor for enum constants. @param hex The hex string for this color.\",\n \"text_lines\": [\n \"@brief Private constructor for enum constants. @param hex The hex string for this color.\"\n ]\n },\n {\n \"start_line_number\": 223,\n \"end_line_number\": 226,\n \"line_range\": [\n 223,\n 226\n ],\n \"text\": \"@brief Get the hex code of this color. @return Hex string including '#' prefix.\",\n \"text_lines\": [\n \"@brief Get the hex code of this color. @return Hex string including '#' prefix.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 228,\n \"text\": \"return hex;\"\n }\n ]\n },\n {\n \"start_line_number\": 227,\n \"end_line_number\": 229,\n \"line_range\": [\n 227,\n 229\n ],\n \"declaration_order_index\": 19,\n \"symbol_name\": \"getHex\",\n \"qualified_name\": \"Color.getHex\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public String getHex()\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Color\",\n \"parent_qualified_name\": \"Color\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Get the hex code of this color.\",\n \"doxygen\": {\n \"brief\": [\n \"Get the hex code of this color.\"\n ],\n \"returns\": [\n \"Hex string including '#' prefix.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 228,\n \"text\": \"return hex;\"\n }\n ]\n },\n {\n \"start_line_number\": 240,\n \"end_line_number\": 261,\n \"line_range\": [\n 240,\n 261\n ],\n \"declaration_order_index\": 20,\n \"symbol_name\": \"Point\",\n \"qualified_name\": \"Point\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public record Point(double x, double y)\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Immutable 2D coordinate record.\",\n \"doxygen\": {\n \"brief\": [\n \"Immutable 2D coordinate record.\",\n \"Compact constructor validating coordinates.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"x\",\n \"description\": \"Horizontal coordinate.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"y\",\n \"description\": \"Vertical coordinate.\"\n }\n ],\n \"throws\": [\n \"IllegalArgumentException If either coordinate is NaN.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 241,\n \"end_line_number\": 244,\n \"line_range\": [\n 241,\n 244\n ],\n \"text\": \"@brief Compact constructor validating coordinates. @throws IllegalArgumentException If either coordinate is NaN.\",\n \"text_lines\": [\n \"@brief Compact constructor validating coordinates. @throws IllegalArgumentException If either coordinate is NaN.\"\n ]\n },\n {\n \"start_line_number\": 251,\n \"end_line_number\": 255,\n \"line_range\": [\n 251,\n 255\n ],\n \"text\": \"@brief Compute distance to another point. @param other Target point. @return Euclidean distance.\",\n \"text_lines\": [\n \"@brief Compute distance to another point. @param other Target point. @return Euclidean distance.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 247,\n \"text\": \"throw new IllegalArgumentException(\\\"NaN coordinates\\\");\"\n },\n {\n \"line_number\": 259,\n \"text\": \"return Math.sqrt(dx * dx + dy * dy);\"\n }\n ]\n },\n {\n \"start_line_number\": 256,\n \"end_line_number\": 260,\n \"line_range\": [\n 256,\n 260\n ],\n \"declaration_order_index\": 21,\n \"symbol_name\": \"distanceTo\",\n \"qualified_name\": \"distanceTo\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public double distanceTo(Point other)\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Compute distance to another point.\",\n \"doxygen\": {\n \"brief\": [\n \"Compute distance to another point.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"other\",\n \"description\": \"Target point.\"\n }\n ],\n \"returns\": [\n \"Euclidean distance.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 259,\n \"text\": \"return Math.sqrt(dx * dx + dy * dy);\"\n }\n ]\n },\n {\n \"start_line_number\": 274,\n \"end_line_number\": 276,\n \"line_range\": [\n 274,\n 276\n ],\n \"declaration_order_index\": 22,\n \"symbol_name\": \"area\",\n \"qualified_name\": \"area\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public double area()\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Compute the area of this shape.\",\n \"doxygen\": {\n \"brief\": [\n \"Compute the area of this shape.\"\n ],\n \"returns\": [\n \"Area as a double; subclasses provide implementation.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 275,\n \"text\": \"return 0.0;\"\n }\n ]\n },\n {\n \"start_line_number\": 284,\n \"end_line_number\": 304,\n \"line_range\": [\n 284,\n 304\n ],\n \"declaration_order_index\": 23,\n \"symbol_name\": \"Circle\",\n \"qualified_name\": \"Circle\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public final class Circle extends Shape\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"area\"\n ],\n \"child_qualified_names\": [\n \"Circle.area\"\n ],\n \"depth\": 0,\n \"inherits_text\": \"Shape\",\n \"attached_comment_summary_text\": \"Circle shape with radius-based area computation.\",\n \"doxygen\": {\n \"brief\": [\n \"Circle shape with radius-based area computation.\",\n \"Radius of the circle.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 285,\n \"end_line_number\": 285,\n \"line_range\": [\n 285,\n 285\n ],\n \"text\": \"@brief Radius of the circle.\",\n \"text_lines\": [\n \"@brief Radius of the circle.\"\n ]\n },\n {\n \"start_line_number\": 288,\n \"end_line_number\": 291,\n \"line_range\": [\n 288,\n 291\n ],\n \"text\": \"@brief Construct a circle with a given radius. @param radius Non-negative radius value.\",\n \"text_lines\": [\n \"@brief Construct a circle with a given radius. @param radius Non-negative radius value.\"\n ]\n },\n {\n \"start_line_number\": 296,\n \"end_line_number\": 299,\n \"line_range\": [\n 296,\n 299\n ],\n \"text\": \"@brief Compute circle area using π×r². @return The area of the circle.\",\n \"text_lines\": [\n \"@brief Compute circle area using π×r². @return The area of the circle.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 302,\n \"text\": \"return PI * radius * radius;\"\n }\n ]\n },\n {\n \"start_line_number\": 292,\n \"end_line_number\": 294,\n \"line_range\": [\n 292,\n 294\n ],\n \"declaration_order_index\": 24,\n \"symbol_name\": \"Circle\",\n \"qualified_name\": \"Circle\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public Circle(double radius)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Circle\",\n \"child_symbol_names\": [\n \"area\"\n ],\n \"child_qualified_names\": [\n \"Circle.area\"\n ],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Construct a circle with a given radius.\",\n \"doxygen\": {\n \"brief\": [\n \"Construct a circle with a given radius.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"radius\",\n \"description\": \"Non-negative radius value.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 301,\n \"end_line_number\": 303,\n \"line_range\": [\n 301,\n 303\n ],\n \"declaration_order_index\": 25,\n \"symbol_name\": \"area\",\n \"qualified_name\": \"Circle.area\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public double area()\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Circle\",\n \"parent_qualified_name\": \"Circle\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"decorator_text\": \"@Override\",\n \"attached_comment_summary_text\": \"@brief Compute circle area using π×r². @return The area of the circle.\",\n \"attached_comment_lines\": [\n \"@brief Compute circle area using π×r².\",\n \"@return The area of the circle.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 302,\n \"text\": \"return PI * radius * radius;\"\n }\n ]\n },\n {\n \"start_line_number\": 311,\n \"end_line_number\": 324,\n \"line_range\": [\n 311,\n 324\n ],\n \"declaration_order_index\": 26,\n \"symbol_name\": \"Rectangle\",\n \"qualified_name\": \"Rectangle\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public final class Rectangle extends Shape\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"area\"\n ],\n \"child_qualified_names\": [\n \"Rectangle.area\"\n ],\n \"depth\": 0,\n \"inherits_text\": \"Shape\",\n \"attached_comment_summary_text\": \"Rectangle shape with width and height.\",\n \"doxygen\": {\n \"brief\": [\n \"Rectangle shape with width and height.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 322,\n \"text\": \"return width * height;\"\n }\n ]\n },\n {\n \"start_line_number\": 315,\n \"end_line_number\": 318,\n \"line_range\": [\n 315,\n 318\n ],\n \"declaration_order_index\": 27,\n \"symbol_name\": \"Rectangle\",\n \"qualified_name\": \"Rectangle\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public Rectangle(double width, double height)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Rectangle\",\n \"child_symbol_names\": [\n \"area\"\n ],\n \"child_qualified_names\": [\n \"Rectangle.area\"\n ],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 321,\n \"end_line_number\": 323,\n \"line_range\": [\n 321,\n 323\n ],\n \"declaration_order_index\": 28,\n \"symbol_name\": \"area\",\n \"qualified_name\": \"Rectangle.area\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public double area()\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Rectangle\",\n \"parent_qualified_name\": \"Rectangle\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"decorator_text\": \"@Override\",\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 322,\n \"text\": \"return width * height;\"\n }\n ]\n },\n {\n \"start_line_number\": 332,\n \"end_line_number\": 361,\n \"line_range\": [\n 332,\n 361\n ],\n \"declaration_order_index\": 29,\n \"symbol_name\": \"Evaluator\",\n \"qualified_name\": \"Evaluator\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public class Evaluator\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"describe\",\n \"switch\",\n \"readFile\"\n ],\n \"child_qualified_names\": [\n \"Evaluator.describe\",\n \"Evaluator.switch\",\n \"Evaluator.readFile\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Demonstrates switch expressions and try-with-resources.\",\n \"doxygen\": {\n \"brief\": [\n \"Demonstrates switch expressions and try-with-resources.\",\n \"Describe a shape using pattern matching switch expression.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"shape\",\n \"description\": \"The shape to describe.\"\n }\n ],\n \"returns\": [\n \"Human-readable description string.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 334,\n \"end_line_number\": 338,\n \"line_range\": [\n 334,\n 338\n ],\n \"text\": \"@brief Describe a shape using pattern matching switch expression. @param shape The shape to describe. @return Human-readable description string.\",\n \"text_lines\": [\n \"@brief Describe a shape using pattern matching switch expression. @param shape The shape to describe. @return Human-readable description string.\"\n ]\n },\n {\n \"start_line_number\": 340,\n \"end_line_number\": 340,\n \"line_range\": [\n 340,\n 340\n ],\n \"text\": \"Switch expression with pattern matching (Java 21)\",\n \"text_lines\": [\n \"Switch expression with pattern matching (Java 21)\"\n ]\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 353,\n \"line_range\": [\n 348,\n 353\n ],\n \"text\": \"@brief Read a file safely with try-with-resources. @param path File system path to read. @return File contents as a string. @throws java.io.IOException If the file cannot be read.\",\n \"text_lines\": [\n \"@brief Read a file safely with try-with-resources. @param path File system path to read. @return File contents as a string. @throws java.io.IOException If the file cannot be read.\"\n ]\n },\n {\n \"start_line_number\": 356,\n \"end_line_number\": 356,\n \"line_range\": [\n 356,\n 356\n ],\n \"text\": \"Auto-closeable resource management\",\n \"text_lines\": [\n \"Auto-closeable resource management\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 341,\n \"text\": \"return switch (shape) {\"\n },\n {\n \"line_number\": 358,\n \"text\": \"return reader.lines().collect(Collectors.joining(\\\"\\\\n\\\"));\"\n }\n ]\n },\n {\n \"start_line_number\": 339,\n \"end_line_number\": 346,\n \"line_range\": [\n 339,\n 346\n ],\n \"declaration_order_index\": 30,\n \"symbol_name\": \"describe\",\n \"qualified_name\": \"Evaluator.describe\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public static String describe(Shape shape)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Evaluator\",\n \"parent_qualified_name\": \"Evaluator\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Describe a shape using pattern matching switch expression.\",\n \"doxygen\": {\n \"brief\": [\n \"Describe a shape using pattern matching switch expression.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"shape\",\n \"description\": \"The shape to describe.\"\n }\n ],\n \"returns\": [\n \"Human-readable description string.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 340,\n \"end_line_number\": 340,\n \"line_range\": [\n 340,\n 340\n ],\n \"text\": \"Switch expression with pattern matching (Java 21)\",\n \"text_lines\": [\n \"Switch expression with pattern matching (Java 21)\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 341,\n \"text\": \"return switch (shape) {\"\n }\n ]\n },\n {\n \"start_line_number\": 341,\n \"end_line_number\": 345,\n \"line_range\": [\n 341,\n 345\n ],\n \"declaration_order_index\": 31,\n \"symbol_name\": \"switch\",\n \"qualified_name\": \"Evaluator.switch\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"return switch (shape)\",\n \"parent_symbol_name\": \"Evaluator\",\n \"parent_qualified_name\": \"Evaluator\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Switch expression with pattern matching (Java 21)\",\n \"attached_comment_lines\": [\n \"Switch expression with pattern matching (Java 21)\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 355,\n \"end_line_number\": 360,\n \"line_range\": [\n 355,\n 360\n ],\n \"declaration_order_index\": 32,\n \"symbol_name\": \"readFile\",\n \"qualified_name\": \"Evaluator.readFile\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public static String readFile(String path) throws java.io.IOException\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Evaluator\",\n \"parent_qualified_name\": \"Evaluator\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"decorator_text\": \"@RequiresAuth(role = \\\"admin\\\")\",\n \"attached_comment_summary_text\": \"@brief Read a file safely with try-with-resources. @param path File system path to read. @return File contents as a string. ...\",\n \"attached_comment_lines\": [\n \"@brief Read a file safely with try-with-resources.\",\n \"@param path File system path to read.\",\n \"@return File contents as a string.\",\n \"...\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 356,\n \"end_line_number\": 356,\n \"line_range\": [\n 356,\n 356\n ],\n \"text\": \"Auto-closeable resource management\",\n \"text_lines\": [\n \"Auto-closeable resource management\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 358,\n \"text\": \"return reader.lines().collect(Collectors.joining(\\\"\\\\n\\\"));\"\n }\n ]\n },\n {\n \"start_line_number\": 364,\n \"end_line_number\": 368,\n \"line_range\": [\n 364,\n 368\n ],\n \"declaration_order_index\": 33,\n \"symbol_name\": \"com.example.extra.one\",\n \"qualified_name\": \"com.example.extra.one\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package com.example.extra.one\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"coverage extension block\",\n \"attached_comment_lines\": [\n \"coverage extension block\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 365,\n \"end_line_number\": 368,\n \"line_range\": [\n 365,\n 368\n ],\n \"declaration_order_index\": 34,\n \"symbol_name\": \"com.example.extra.two\",\n \"qualified_name\": \"com.example.extra.two\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package com.example.extra.two\",\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\": 366,\n \"end_line_number\": 368,\n \"line_range\": [\n 366,\n 368\n ],\n \"declaration_order_index\": 35,\n \"symbol_name\": \"com.example.extra.three\",\n \"qualified_name\": \"com.example.extra.three\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package com.example.extra.three\",\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\": 367,\n \"end_line_number\": 368,\n \"line_range\": [\n 367,\n 368\n ],\n \"declaration_order_index\": 36,\n \"symbol_name\": \"com.example.extra.four\",\n \"qualified_name\": \"com.example.extra.four\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package com.example.extra.four\",\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\": 368,\n \"end_line_number\": 368,\n \"line_range\": [\n 368,\n 368\n ],\n \"declaration_order_index\": 37,\n \"symbol_name\": \"Runner\",\n \"qualified_name\": \"Runner\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface Runner {}\",\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\": 369,\n \"end_line_number\": 369,\n \"line_range\": [\n 369,\n 369\n ],\n \"declaration_order_index\": 38,\n \"symbol_name\": \"Mapper\",\n \"qualified_name\": \"Mapper\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"public interface Mapper {}\",\n \"visibility\": \"pub\",\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\": 370,\n \"end_line_number\": 370,\n \"line_range\": [\n 370,\n 370\n ],\n \"declaration_order_index\": 39,\n \"symbol_name\": \"Handler\",\n \"qualified_name\": \"Handler\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"public interface Handler {}\",\n \"visibility\": \"pub\",\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\": 371,\n \"end_line_number\": 371,\n \"line_range\": [\n 371,\n 371\n ],\n \"declaration_order_index\": 40,\n \"symbol_name\": \"Auditor\",\n \"qualified_name\": \"Auditor\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"public interface Auditor {}\",\n \"visibility\": \"pub\",\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\": 372,\n \"end_line_number\": 372,\n \"line_range\": [\n 372,\n 372\n ],\n \"declaration_order_index\": 41,\n \"symbol_name\": \"ModeJava\",\n \"qualified_name\": \"ModeJava\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum ModeJava { 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\": 373,\n \"end_line_number\": 373,\n \"line_range\": [\n 373,\n 373\n ],\n \"declaration_order_index\": 42,\n \"symbol_name\": \"PhaseJava\",\n \"qualified_name\": \"PhaseJava\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum PhaseJava { 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\": 374,\n \"end_line_number\": 374,\n \"line_range\": [\n 374,\n 374\n ],\n \"declaration_order_index\": 43,\n \"symbol_name\": \"StatusJava\",\n \"qualified_name\": \"StatusJava\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum StatusJava { OPEN, CLOSED }\",\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\": 375,\n \"end_line_number\": 375,\n \"line_range\": [\n 375,\n 375\n ],\n \"declaration_order_index\": 44,\n \"symbol_name\": \"KindJava\",\n \"qualified_name\": \"KindJava\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum KindJava { A, B }\",\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\": 376,\n \"end_line_number\": 376,\n \"line_range\": [\n 376,\n 376\n ],\n \"declaration_order_index\": 45,\n \"symbol_name\": \"DEFAULT_LIMIT\",\n \"qualified_name\": \"DEFAULT_LIMIT\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"public static final int DEFAULT_LIMIT = 10\",\n \"visibility\": \"pub\",\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\": 377,\n \"end_line_number\": 377,\n \"line_range\": [\n 377,\n 377\n ],\n \"declaration_order_index\": 46,\n \"symbol_name\": \"RETRY_LIMIT\",\n \"qualified_name\": \"RETRY_LIMIT\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"public static final int RETRY_LIMIT = 3\",\n \"visibility\": \"pub\",\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\": 378,\n \"end_line_number\": 378,\n \"line_range\": [\n 378,\n 378\n ],\n \"declaration_order_index\": 47,\n \"symbol_name\": \"BUFFER_SIZE\",\n \"qualified_name\": \"BUFFER_SIZE\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"public static final int BUFFER_SIZE = 512\",\n \"visibility\": \"pub\",\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\": 379,\n \"end_line_number\": 379,\n \"line_range\": [\n 379,\n 379\n ],\n \"declaration_order_index\": 48,\n \"symbol_name\": \"MAX_USERS\",\n \"qualified_name\": \"MAX_USERS\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"public static final int MAX_USERS = 99\",\n \"visibility\": \"pub\",\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\": 383,\n \"end_line_number\": 429,\n \"line_range\": [\n 383,\n 429\n ],\n \"declaration_order_index\": 49,\n \"symbol_name\": \"ReqCoverJava\",\n \"qualified_name\": \"ReqCoverJava\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class ReqCoverJava\",\n \"child_symbol_names\": [\n \"reqCoverJava1\",\n \"reqCoverJava2\",\n \"reqCoverJava3\",\n \"reqCoverJava4\",\n \"reqCoverJava5\"\n ],\n \"child_qualified_names\": [\n \"ReqCoverJava.reqCoverJava1\",\n \"ReqCoverJava.reqCoverJava2\",\n \"ReqCoverJava.reqCoverJava3\",\n \"ReqCoverJava.reqCoverJava4\",\n \"ReqCoverJava.reqCoverJava5\"\n ],\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 {\n \"start_line_number\": 384,\n \"end_line_number\": 390,\n \"line_range\": [\n 384,\n 390\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1 @brief Coverage helper construct 1. @details Provides deterministic fixture-level Doxygen coverage block 1. @param value Input value for helper construct 1. @return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1 @brief Coverage helper construct 1. @details Provides deterministic fixture-level Doxygen coverage block 1. @param value Input value for helper construct 1. @return Output value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 393,\n \"end_line_number\": 399,\n \"line_range\": [\n 393,\n 399\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 2 @brief Coverage helper construct 2. @details Provides deterministic fixture-level Doxygen coverage block 2. @param value Input value for helper construct 2. @return Output value for helper construct 2.\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 2 @brief Coverage helper construct 2. @details Provides deterministic fixture-level Doxygen coverage block 2. @param value Input value for helper construct 2. @return Output value for helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 402,\n \"end_line_number\": 408,\n \"line_range\": [\n 402,\n 408\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 3 @brief Coverage helper construct 3. @details Provides deterministic fixture-level Doxygen coverage block 3. @param value Input value for helper construct 3. @return Output value for helper construct 3.\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 3 @brief Coverage helper construct 3. @details Provides deterministic fixture-level Doxygen coverage block 3. @param value Input value for helper construct 3. @return Output value for helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 411,\n \"end_line_number\": 417,\n \"line_range\": [\n 411,\n 417\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 4 @brief Coverage helper construct 4. @details Provides deterministic fixture-level Doxygen coverage block 4. @param value Input value for helper construct 4. @return Output value for helper construct 4.\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 4 @brief Coverage helper construct 4. @details Provides deterministic fixture-level Doxygen coverage block 4. @param value Input value for helper construct 4. @return Output value for helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 420,\n \"end_line_number\": 426,\n \"line_range\": [\n 420,\n 426\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 5 @brief Coverage helper construct 5. @details Provides deterministic fixture-level Doxygen coverage block 5. @param value Input value for helper construct 5. @return Output value for helper construct 5.\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 5 @brief Coverage helper construct 5. @details Provides deterministic fixture-level Doxygen coverage block 5. @param value Input value for helper construct 5. @return Output value for helper construct 5.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 391,\n \"end_line_number\": 391,\n \"line_range\": [\n 391,\n 391\n ],\n \"declaration_order_index\": 50,\n \"symbol_name\": \"reqCoverJava1\",\n \"qualified_name\": \"ReqCoverJava.reqCoverJava1\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"static int reqCoverJava1(int value) { return value + 1; }\",\n \"parent_symbol_name\": \"ReqCoverJava\",\n \"parent_qualified_name\": \"ReqCoverJava\",\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\": 400,\n \"end_line_number\": 400,\n \"line_range\": [\n 400,\n 400\n ],\n \"declaration_order_index\": 51,\n \"symbol_name\": \"reqCoverJava2\",\n \"qualified_name\": \"ReqCoverJava.reqCoverJava2\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"static int reqCoverJava2(int value) { return value + 2; }\",\n \"parent_symbol_name\": \"ReqCoverJava\",\n \"parent_qualified_name\": \"ReqCoverJava\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\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\": 409,\n \"end_line_number\": 409,\n \"line_range\": [\n 409,\n 409\n ],\n \"declaration_order_index\": 52,\n \"symbol_name\": \"reqCoverJava3\",\n \"qualified_name\": \"ReqCoverJava.reqCoverJava3\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"static int reqCoverJava3(int value) { return value + 3; }\",\n \"parent_symbol_name\": \"ReqCoverJava\",\n \"parent_qualified_name\": \"ReqCoverJava\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\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\": 418,\n \"end_line_number\": 418,\n \"line_range\": [\n 418,\n 418\n ],\n \"declaration_order_index\": 53,\n \"symbol_name\": \"reqCoverJava4\",\n \"qualified_name\": \"ReqCoverJava.reqCoverJava4\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"static int reqCoverJava4(int value) { return value + 4; }\",\n \"parent_symbol_name\": \"ReqCoverJava\",\n \"parent_qualified_name\": \"ReqCoverJava\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\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\": 427,\n \"end_line_number\": 427,\n \"line_range\": [\n 427,\n 427\n ],\n \"declaration_order_index\": 54,\n \"symbol_name\": \"reqCoverJava5\",\n \"qualified_name\": \"ReqCoverJava.reqCoverJava5\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"static int reqCoverJava5(int value) { return value + 5; }\",\n \"parent_symbol_name\": \"ReqCoverJava\",\n \"parent_qualified_name\": \"ReqCoverJava\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\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\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"text\": \"── Annotation ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Annotation ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 31,\n \"end_line_number\": 31,\n \"line_range\": [\n 31,\n 31\n ],\n \"text\": \"── Main class ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Main class ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 44,\n \"end_line_number\": 44,\n \"line_range\": [\n 44,\n 44\n ],\n \"text\": \"@brief Type-safe internal storage for items.\",\n \"text_lines\": [\n \"@brief Type-safe internal storage for items.\"\n ]\n },\n {\n \"start_line_number\": 60,\n \"end_line_number\": 60,\n \"line_range\": [\n 60,\n 60\n ],\n \"text\": \"Null check before output\",\n \"text_lines\": [\n \"Null check before output\"\n ]\n },\n {\n \"start_line_number\": 82,\n \"end_line_number\": 82,\n \"line_range\": [\n 82,\n 82\n ],\n \"text\": \"Test each item against predicate\",\n \"text_lines\": [\n \"Test each item against predicate\"\n ]\n },\n {\n \"start_line_number\": 115,\n \"end_line_number\": 115,\n \"line_range\": [\n 115,\n 115\n ],\n \"text\": \"── Inner class ────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Inner class ────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 143,\n \"end_line_number\": 143,\n \"line_range\": [\n 143,\n 143\n ],\n \"text\": \"── Static nested class ────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Static nested class ────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 150,\n \"end_line_number\": 150,\n \"line_range\": [\n 150,\n 150\n ],\n \"text\": \"@brief Configuration key string.\",\n \"text_lines\": [\n \"@brief Configuration key string.\"\n ]\n },\n {\n \"start_line_number\": 152,\n \"end_line_number\": 152,\n \"line_range\": [\n 152,\n 152\n ],\n \"text\": \"@brief Configuration value.\",\n \"text_lines\": [\n \"@brief Configuration value.\"\n ]\n },\n {\n \"start_line_number\": 167,\n \"end_line_number\": 167,\n \"line_range\": [\n 167,\n 167\n ],\n \"text\": \"── Interface with default methods ─────────────────────────────────────\",\n \"text_lines\": [\n \"── Interface with default methods ─────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 180,\n \"end_line_number\": 183,\n \"line_range\": [\n 180,\n 183\n ],\n \"text\": \"@brief Default farewell method with implementation. @param name Person to bid farewell.\",\n \"text_lines\": [\n \"@brief Default farewell method with implementation.\",\n \"@param name Person to bid farewell.\"\n ]\n },\n {\n \"start_line_number\": 193,\n \"end_line_number\": 193,\n \"line_range\": [\n 193,\n 193\n ],\n \"text\": \"Lambda implementing the functional interface\",\n \"text_lines\": [\n \"Lambda implementing the functional interface\"\n ]\n },\n {\n \"start_line_number\": 198,\n \"end_line_number\": 198,\n \"line_range\": [\n 198,\n 198\n ],\n \"text\": \"── Enum with methods ──────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Enum with methods ──────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 205,\n \"end_line_number\": 205,\n \"line_range\": [\n 205,\n 205\n ],\n \"text\": \"@brief Red color with hex #FF0000.\",\n \"text_lines\": [\n \"@brief Red color with hex #FF0000.\"\n ]\n },\n {\n \"start_line_number\": 207,\n \"end_line_number\": 207,\n \"line_range\": [\n 207,\n 207\n ],\n \"text\": \"@brief Green color with hex #00FF00.\",\n \"text_lines\": [\n \"@brief Green color with hex #00FF00.\"\n ]\n },\n {\n \"start_line_number\": 209,\n \"end_line_number\": 209,\n \"line_range\": [\n 209,\n 209\n ],\n \"text\": \"@brief Blue color with hex #0000FF.\",\n \"text_lines\": [\n \"@brief Blue color with hex #0000FF.\"\n ]\n },\n {\n \"start_line_number\": 212,\n \"end_line_number\": 212,\n \"line_range\": [\n 212,\n 212\n ],\n \"text\": \"@brief The hexadecimal color code.\",\n \"text_lines\": [\n \"@brief The hexadecimal color code.\"\n ]\n },\n {\n \"start_line_number\": 215,\n \"end_line_number\": 218,\n \"line_range\": [\n 215,\n 218\n ],\n \"text\": \"@brief Private constructor for enum constants. @param hex The hex string for this color.\",\n \"text_lines\": [\n \"@brief Private constructor for enum constants.\",\n \"@param hex The hex string for this color.\"\n ]\n },\n {\n \"start_line_number\": 232,\n \"end_line_number\": 232,\n \"line_range\": [\n 232,\n 232\n ],\n \"text\": \"── Record (Java 16+) ──────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Record (Java 16+) ──────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 241,\n \"end_line_number\": 244,\n \"line_range\": [\n 241,\n 244\n ],\n \"text\": \"@brief Compact constructor validating coordinates. @throws IllegalArgumentException If either coordinate is NaN.\",\n \"text_lines\": [\n \"@brief Compact constructor validating coordinates.\",\n \"@throws IllegalArgumentException If either coordinate is NaN.\"\n ]\n },\n {\n \"start_line_number\": 263,\n \"end_line_number\": 263,\n \"line_range\": [\n 263,\n 263\n ],\n \"text\": \"── Sealed class hierarchy (Java 17+) ──────────────────────────────────\",\n \"text_lines\": [\n \"── Sealed class hierarchy (Java 17+) ──────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 265,\n \"end_line_number\": 268,\n \"line_range\": [\n 265,\n 268\n ],\n \"text\": \"@class Shape @brief Sealed class permitting only Circle and Rectangle subtypes.\",\n \"text_lines\": [\n \"@class Shape\",\n \"@brief Sealed class permitting only Circle and Rectangle subtypes.\"\n ]\n },\n {\n \"start_line_number\": 285,\n \"end_line_number\": 285,\n \"line_range\": [\n 285,\n 285\n ],\n \"text\": \"@brief Radius of the circle.\",\n \"text_lines\": [\n \"@brief Radius of the circle.\"\n ]\n },\n {\n \"start_line_number\": 326,\n \"end_line_number\": 326,\n \"line_range\": [\n 326,\n 326\n ],\n \"text\": \"── Utility class with switch expression ───────────────────────────────\",\n \"text_lines\": [\n \"── Utility class with switch expression ───────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 356,\n \"end_line_number\": 356,\n \"line_range\": [\n 356,\n 356\n ],\n \"text\": \"Auto-closeable resource management\",\n \"text_lines\": [\n \"Auto-closeable resource management\"\n ]\n },\n {\n \"start_line_number\": 430,\n \"end_line_number\": 430,\n \"line_range\": [\n 430,\n 430\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
|
+
}
|