pi-usereq 0.49.0 → 0.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (940) hide show
  1. package/README.md +1 -1
  2. package/package.json +5 -1
  3. package/scripts/lib/extension-debug-harness.ts +443 -0
  4. package/scripts/lib/recording-extension-api.ts +855 -0
  5. package/scripts/lib/sdk-smoke.ts +503 -0
  6. package/src/core/extension-status.ts +13 -4
  7. package/src/index.ts +105 -71
  8. package/.g.conf +0 -16
  9. package/.github/workflows/release-npm.yml +0 -134
  10. package/.gitignore +0 -274
  11. package/CHANGELOG.md +0 -706
  12. package/TODO.md +0 -20
  13. package/docs/pi.dev/agent-document-manifest.json +0 -6399
  14. package/docs/pi.dev/coding-agent-docs/compaction.md +0 -394
  15. package/docs/pi.dev/coding-agent-docs/custom-provider.md +0 -637
  16. package/docs/pi.dev/coding-agent-docs/development.md +0 -71
  17. package/docs/pi.dev/coding-agent-docs/extensions.md +0 -2536
  18. package/docs/pi.dev/coding-agent-docs/images/doom-extension.png +0 -0
  19. package/docs/pi.dev/coding-agent-docs/images/exy.png +0 -0
  20. package/docs/pi.dev/coding-agent-docs/images/interactive-mode.png +0 -0
  21. package/docs/pi.dev/coding-agent-docs/images/tree-view.png +0 -0
  22. package/docs/pi.dev/coding-agent-docs/json.md +0 -82
  23. package/docs/pi.dev/coding-agent-docs/keybindings.md +0 -197
  24. package/docs/pi.dev/coding-agent-docs/models.md +0 -395
  25. package/docs/pi.dev/coding-agent-docs/packages.md +0 -218
  26. package/docs/pi.dev/coding-agent-docs/prompt-templates.md +0 -88
  27. package/docs/pi.dev/coding-agent-docs/providers.md +0 -196
  28. package/docs/pi.dev/coding-agent-docs/rpc.md +0 -1407
  29. package/docs/pi.dev/coding-agent-docs/sdk.md +0 -1149
  30. package/docs/pi.dev/coding-agent-docs/session.md +0 -412
  31. package/docs/pi.dev/coding-agent-docs/settings.md +0 -248
  32. package/docs/pi.dev/coding-agent-docs/shell-aliases.md +0 -13
  33. package/docs/pi.dev/coding-agent-docs/skills.md +0 -232
  34. package/docs/pi.dev/coding-agent-docs/terminal-setup.md +0 -106
  35. package/docs/pi.dev/coding-agent-docs/termux.md +0 -127
  36. package/docs/pi.dev/coding-agent-docs/themes.md +0 -295
  37. package/docs/pi.dev/coding-agent-docs/tmux.md +0 -61
  38. package/docs/pi.dev/coding-agent-docs/tree.md +0 -233
  39. package/docs/pi.dev/coding-agent-docs/tui.md +0 -918
  40. package/docs/pi.dev/coding-agent-docs/windows.md +0 -17
  41. package/docs/pi.dev/mom-docs/artifacts-server.md +0 -475
  42. package/docs/pi.dev/mom-docs/events.md +0 -307
  43. package/docs/pi.dev/mom-docs/new.md +0 -970
  44. package/docs/pi.dev/mom-docs/sandbox.md +0 -153
  45. package/docs/pi.dev/mom-docs/slack-bot-minimal-guide.md +0 -399
  46. package/docs/pi.dev/mom-docs/v86.md +0 -319
  47. package/docs/pi.dev/pods-docs/gml-4.5.md +0 -189
  48. package/docs/pi.dev/pods-docs/gpt-oss.md +0 -233
  49. package/docs/pi.dev/pods-docs/implementation-plan.md +0 -183
  50. package/docs/pi.dev/pods-docs/kimi-k2.md +0 -197
  51. package/docs/pi.dev/pods-docs/models.md +0 -116
  52. package/docs/pi.dev/pods-docs/plan.md +0 -166
  53. package/docs/pi.dev/pods-docs/qwen3-coder.md +0 -132
  54. package/images/flowchart-bw.png +0 -0
  55. package/images/flowchart-bw.svg +0 -102
  56. package/images/flowchart.md +0 -100
  57. package/images/flowchart.png +0 -0
  58. package/images/flowchart.svg +0 -3
  59. package/pi-usereq/docs/REFERENCES.md +0 -5713
  60. package/pi-usereq/docs/REQUIREMENTS.md +0 -781
  61. package/pi-usereq/docs/WORKFLOW.md +0 -1341
  62. package/pi.dev-src/pi-mono/agent/src/agent-loop.ts +0 -683
  63. package/pi.dev-src/pi-mono/agent/src/agent.ts +0 -543
  64. package/pi.dev-src/pi-mono/agent/src/index.ts +0 -8
  65. package/pi.dev-src/pi-mono/agent/src/proxy.ts +0 -367
  66. package/pi.dev-src/pi-mono/agent/src/types.ts +0 -364
  67. package/pi.dev-src/pi-mono/agent/test/agent-loop.test.ts +0 -1181
  68. package/pi.dev-src/pi-mono/agent/test/agent.test.ts +0 -463
  69. package/pi.dev-src/pi-mono/agent/test/e2e.test.ts +0 -404
  70. package/pi.dev-src/pi-mono/agent/test/utils/calculate.ts +0 -32
  71. package/pi.dev-src/pi-mono/agent/test/utils/get-current-time.ts +0 -46
  72. package/pi.dev-src/pi-mono/agent/vitest.config.ts +0 -9
  73. package/pi.dev-src/pi-mono/ai/bedrock-provider.d.ts +0 -1
  74. package/pi.dev-src/pi-mono/ai/bedrock-provider.js +0 -1
  75. package/pi.dev-src/pi-mono/ai/scripts/generate-models.ts +0 -1635
  76. package/pi.dev-src/pi-mono/ai/scripts/generate-test-image.ts +0 -34
  77. package/pi.dev-src/pi-mono/ai/src/api-registry.ts +0 -98
  78. package/pi.dev-src/pi-mono/ai/src/bedrock-provider.ts +0 -6
  79. package/pi.dev-src/pi-mono/ai/src/cli.ts +0 -133
  80. package/pi.dev-src/pi-mono/ai/src/env-api-keys.ts +0 -134
  81. package/pi.dev-src/pi-mono/ai/src/index.ts +0 -35
  82. package/pi.dev-src/pi-mono/ai/src/models.generated.ts +0 -14928
  83. package/pi.dev-src/pi-mono/ai/src/models.ts +0 -82
  84. package/pi.dev-src/pi-mono/ai/src/oauth.ts +0 -1
  85. package/pi.dev-src/pi-mono/ai/src/providers/amazon-bedrock.ts +0 -929
  86. package/pi.dev-src/pi-mono/ai/src/providers/anthropic.ts +0 -1125
  87. package/pi.dev-src/pi-mono/ai/src/providers/azure-openai-responses.ts +0 -253
  88. package/pi.dev-src/pi-mono/ai/src/providers/faux.ts +0 -499
  89. package/pi.dev-src/pi-mono/ai/src/providers/github-copilot-headers.ts +0 -37
  90. package/pi.dev-src/pi-mono/ai/src/providers/google-gemini-cli.ts +0 -996
  91. package/pi.dev-src/pi-mono/ai/src/providers/google-shared.ts +0 -354
  92. package/pi.dev-src/pi-mono/ai/src/providers/google-vertex.ts +0 -543
  93. package/pi.dev-src/pi-mono/ai/src/providers/google.ts +0 -500
  94. package/pi.dev-src/pi-mono/ai/src/providers/mistral.ts +0 -629
  95. package/pi.dev-src/pi-mono/ai/src/providers/openai-codex-responses.ts +0 -984
  96. package/pi.dev-src/pi-mono/ai/src/providers/openai-completions.ts +0 -1063
  97. package/pi.dev-src/pi-mono/ai/src/providers/openai-responses-shared.ts +0 -539
  98. package/pi.dev-src/pi-mono/ai/src/providers/openai-responses.ts +0 -264
  99. package/pi.dev-src/pi-mono/ai/src/providers/register-builtins.ts +0 -433
  100. package/pi.dev-src/pi-mono/ai/src/providers/simple-options.ts +0 -47
  101. package/pi.dev-src/pi-mono/ai/src/providers/transform-messages.ts +0 -220
  102. package/pi.dev-src/pi-mono/ai/src/stream.ts +0 -59
  103. package/pi.dev-src/pi-mono/ai/src/types.ts +0 -417
  104. package/pi.dev-src/pi-mono/ai/src/utils/event-stream.ts +0 -87
  105. package/pi.dev-src/pi-mono/ai/src/utils/hash.ts +0 -13
  106. package/pi.dev-src/pi-mono/ai/src/utils/headers.ts +0 -7
  107. package/pi.dev-src/pi-mono/ai/src/utils/json-parse.ts +0 -124
  108. package/pi.dev-src/pi-mono/ai/src/utils/overflow.ts +0 -138
  109. package/pi.dev-src/pi-mono/ai/src/utils/sanitize-unicode.ts +0 -25
  110. package/pi.dev-src/pi-mono/ai/src/utils/typebox-helpers.ts +0 -24
  111. package/pi.dev-src/pi-mono/ai/src/utils/validation.ts +0 -324
  112. package/pi.dev-src/pi-mono/ai/test/abort.test.ts +0 -260
  113. package/pi.dev-src/pi-mono/ai/test/anthropic-oauth.test.ts +0 -99
  114. package/pi.dev-src/pi-mono/ai/test/anthropic-opus-4-7-smoke.test.ts +0 -72
  115. package/pi.dev-src/pi-mono/ai/test/anthropic-sse-parsing.test.ts +0 -113
  116. package/pi.dev-src/pi-mono/ai/test/anthropic-thinking-disable.test.ts +0 -152
  117. package/pi.dev-src/pi-mono/ai/test/anthropic-tool-name-normalization.test.ts +0 -205
  118. package/pi.dev-src/pi-mono/ai/test/azure-utils.ts +0 -28
  119. package/pi.dev-src/pi-mono/ai/test/bedrock-endpoint-resolution.test.ts +0 -131
  120. package/pi.dev-src/pi-mono/ai/test/bedrock-models.test.ts +0 -66
  121. package/pi.dev-src/pi-mono/ai/test/bedrock-thinking-payload.test.ts +0 -107
  122. package/pi.dev-src/pi-mono/ai/test/bedrock-utils.ts +0 -18
  123. package/pi.dev-src/pi-mono/ai/test/cache-retention.test.ts +0 -335
  124. package/pi.dev-src/pi-mono/ai/test/context-overflow.test.ts +0 -714
  125. package/pi.dev-src/pi-mono/ai/test/cross-provider-handoff.test.ts +0 -458
  126. package/pi.dev-src/pi-mono/ai/test/data/red-circle.png +0 -0
  127. package/pi.dev-src/pi-mono/ai/test/empty.test.ts +0 -742
  128. package/pi.dev-src/pi-mono/ai/test/faux-provider.test.ts +0 -597
  129. package/pi.dev-src/pi-mono/ai/test/fireworks-models.test.ts +0 -49
  130. package/pi.dev-src/pi-mono/ai/test/github-copilot-anthropic.test.ts +0 -108
  131. package/pi.dev-src/pi-mono/ai/test/github-copilot-oauth.test.ts +0 -196
  132. package/pi.dev-src/pi-mono/ai/test/google-gemini-cli-claude-thinking-header.test.ts +0 -103
  133. package/pi.dev-src/pi-mono/ai/test/google-gemini-cli-empty-stream.test.ts +0 -108
  134. package/pi.dev-src/pi-mono/ai/test/google-gemini-cli-retry-delay.test.ts +0 -53
  135. package/pi.dev-src/pi-mono/ai/test/google-shared-convert-tools.test.ts +0 -187
  136. package/pi.dev-src/pi-mono/ai/test/google-shared-gemini3-unsigned-tool-call.test.ts +0 -172
  137. package/pi.dev-src/pi-mono/ai/test/google-shared-image-tool-result-routing.test.ts +0 -124
  138. package/pi.dev-src/pi-mono/ai/test/google-thinking-disable.test.ts +0 -183
  139. package/pi.dev-src/pi-mono/ai/test/google-thinking-signature.test.ts +0 -38
  140. package/pi.dev-src/pi-mono/ai/test/google-tool-call-missing-args.test.ts +0 -105
  141. package/pi.dev-src/pi-mono/ai/test/google-vertex-api-key-resolution.test.ts +0 -144
  142. package/pi.dev-src/pi-mono/ai/test/image-tool-result.test.ts +0 -481
  143. package/pi.dev-src/pi-mono/ai/test/interleaved-thinking.test.ts +0 -145
  144. package/pi.dev-src/pi-mono/ai/test/lazy-module-load.test.ts +0 -102
  145. package/pi.dev-src/pi-mono/ai/test/mistral-reasoning-mode.test.ts +0 -66
  146. package/pi.dev-src/pi-mono/ai/test/mistral-tool-schema.test.ts +0 -61
  147. package/pi.dev-src/pi-mono/ai/test/oauth.ts +0 -89
  148. package/pi.dev-src/pi-mono/ai/test/openai-codex-cache-affinity-e2e.test.ts +0 -36
  149. package/pi.dev-src/pi-mono/ai/test/openai-codex-stream.test.ts +0 -686
  150. package/pi.dev-src/pi-mono/ai/test/openai-completions-cache-control-format.test.ts +0 -189
  151. package/pi.dev-src/pi-mono/ai/test/openai-completions-prompt-cache.test.ts +0 -198
  152. package/pi.dev-src/pi-mono/ai/test/openai-completions-thinking-as-text.test.ts +0 -214
  153. package/pi.dev-src/pi-mono/ai/test/openai-completions-tool-choice.test.ts +0 -560
  154. package/pi.dev-src/pi-mono/ai/test/openai-completions-tool-result-images.test.ts +0 -101
  155. package/pi.dev-src/pi-mono/ai/test/openai-responses-cache-affinity-e2e.test.ts +0 -32
  156. package/pi.dev-src/pi-mono/ai/test/openai-responses-copilot-provider.test.ts +0 -128
  157. package/pi.dev-src/pi-mono/ai/test/openai-responses-foreign-toolcall-id.test.ts +0 -66
  158. package/pi.dev-src/pi-mono/ai/test/openai-responses-partial-json-cleanup.test.ts +0 -101
  159. package/pi.dev-src/pi-mono/ai/test/openai-responses-reasoning-replay-e2e.test.ts +0 -292
  160. package/pi.dev-src/pi-mono/ai/test/openai-responses-tool-result-images.test.ts +0 -200
  161. package/pi.dev-src/pi-mono/ai/test/openrouter-cache-write-repro.test.ts +0 -78
  162. package/pi.dev-src/pi-mono/ai/test/overflow.test.ts +0 -64
  163. package/pi.dev-src/pi-mono/ai/test/responseid.test.ts +0 -145
  164. package/pi.dev-src/pi-mono/ai/test/stream.test.ts +0 -1405
  165. package/pi.dev-src/pi-mono/ai/test/supports-xhigh.test.ts +0 -34
  166. package/pi.dev-src/pi-mono/ai/test/tokens.test.ts +0 -304
  167. package/pi.dev-src/pi-mono/ai/test/tool-call-id-normalization.test.ts +0 -291
  168. package/pi.dev-src/pi-mono/ai/test/tool-call-without-result.test.ts +0 -313
  169. package/pi.dev-src/pi-mono/ai/test/total-tokens.test.ts +0 -695
  170. package/pi.dev-src/pi-mono/ai/test/transform-messages-copilot-openai-to-anthropic.test.ts +0 -191
  171. package/pi.dev-src/pi-mono/ai/test/unicode-surrogate.test.ts +0 -754
  172. package/pi.dev-src/pi-mono/ai/test/validation.test.ts +0 -116
  173. package/pi.dev-src/pi-mono/ai/test/xhigh.test.ts +0 -71
  174. package/pi.dev-src/pi-mono/ai/test/zen.test.ts +0 -25
  175. package/pi.dev-src/pi-mono/ai/vitest.config.ts +0 -9
  176. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/antigravity-image-gen.ts +0 -418
  177. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/auto-commit-on-exit.ts +0 -49
  178. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/bash-spawn-hook.ts +0 -30
  179. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/bookmark.ts +0 -50
  180. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/built-in-tool-renderer.ts +0 -249
  181. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/claude-rules.ts +0 -86
  182. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/commands.ts +0 -72
  183. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/confirm-destructive.ts +0 -59
  184. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/custom-compaction.ts +0 -127
  185. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/custom-footer.ts +0 -64
  186. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/custom-header.ts +0 -73
  187. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/custom-provider-anthropic/index.ts +0 -604
  188. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/custom-provider-anthropic/package-lock.json +0 -24
  189. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/custom-provider-gitlab-duo/index.ts +0 -349
  190. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/custom-provider-gitlab-duo/test.ts +0 -82
  191. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/custom-provider-qwen-cli/index.ts +0 -345
  192. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/dirty-repo-guard.ts +0 -56
  193. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/doom-overlay/doom/build.sh +0 -152
  194. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -72
  195. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/doom-overlay/doom-component.ts +0 -132
  196. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/doom-overlay/doom-engine.ts +0 -173
  197. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/doom-overlay/doom-keys.ts +0 -104
  198. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/doom-overlay/index.ts +0 -74
  199. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/doom-overlay/wad-finder.ts +0 -51
  200. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/dynamic-resources/SKILL.md +0 -8
  201. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/dynamic-resources/dynamic.json +0 -79
  202. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/dynamic-resources/dynamic.md +0 -5
  203. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/dynamic-resources/index.ts +0 -15
  204. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/dynamic-tools.ts +0 -74
  205. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/event-bus.ts +0 -43
  206. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/file-trigger.ts +0 -41
  207. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/git-checkpoint.ts +0 -53
  208. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/github-issue-autocomplete.ts +0 -185
  209. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/handoff.ts +0 -153
  210. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/hello.ts +0 -26
  211. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/hidden-thinking-label.ts +0 -53
  212. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/inline-bash.ts +0 -94
  213. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/input-transform.ts +0 -43
  214. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/interactive-shell.ts +0 -196
  215. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/mac-system-theme.ts +0 -47
  216. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/message-renderer.ts +0 -59
  217. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/minimal-mode.ts +0 -426
  218. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/modal-editor.ts +0 -85
  219. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/model-status.ts +0 -31
  220. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/notify.ts +0 -55
  221. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/overlay-qa-tests.ts +0 -1348
  222. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/overlay-test.ts +0 -150
  223. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/permission-gate.ts +0 -34
  224. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/pirate.ts +0 -47
  225. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/plan-mode/index.ts +0 -340
  226. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/plan-mode/utils.ts +0 -168
  227. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/preset.ts +0 -430
  228. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/prompt-customizer.ts +0 -97
  229. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/protected-paths.ts +0 -30
  230. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/provider-payload.ts +0 -18
  231. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/qna.ts +0 -122
  232. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/question.ts +0 -264
  233. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/questionnaire.ts +0 -427
  234. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/rainbow-editor.ts +0 -88
  235. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/reload-runtime.ts +0 -37
  236. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/rpc-demo.ts +0 -118
  237. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/sandbox/index.ts +0 -321
  238. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/sandbox/package-lock.json +0 -92
  239. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/send-user-message.ts +0 -97
  240. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/session-name.ts +0 -27
  241. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/shutdown-command.ts +0 -63
  242. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/snake.ts +0 -343
  243. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/space-invaders.ts +0 -560
  244. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/ssh.ts +0 -220
  245. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/status-line.ts +0 -32
  246. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/structured-output.ts +0 -65
  247. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/subagent/agents/planner.md +0 -37
  248. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/subagent/agents/reviewer.md +0 -35
  249. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/subagent/agents/scout.md +0 -50
  250. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/subagent/agents/worker.md +0 -24
  251. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/subagent/agents.ts +0 -126
  252. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/subagent/index.ts +0 -987
  253. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/subagent/prompts/implement-and-review.md +0 -10
  254. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/subagent/prompts/implement.md +0 -10
  255. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/subagent/prompts/scout-and-plan.md +0 -9
  256. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/summarize.ts +0 -206
  257. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/system-prompt-header.ts +0 -17
  258. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/tic-tac-toe.ts +0 -1008
  259. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/timed-confirm.ts +0 -70
  260. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/titlebar-spinner.ts +0 -58
  261. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/todo.ts +0 -297
  262. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/tool-override.ts +0 -144
  263. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/tools.ts +0 -141
  264. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/trigger-compact.ts +0 -50
  265. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/truncated-tool.ts +0 -195
  266. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/widget-placement.ts +0 -9
  267. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/with-deps/index.ts +0 -32
  268. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/with-deps/package-lock.json +0 -31
  269. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/working-indicator.ts +0 -123
  270. package/pi.dev-src/pi-mono/coding-agent/examples/extensions/working-message-test.ts +0 -25
  271. package/pi.dev-src/pi-mono/coding-agent/examples/rpc-extension-ui.ts +0 -632
  272. package/pi.dev-src/pi-mono/coding-agent/examples/sdk/01-minimal.ts +0 -22
  273. package/pi.dev-src/pi-mono/coding-agent/examples/sdk/02-custom-model.ts +0 -49
  274. package/pi.dev-src/pi-mono/coding-agent/examples/sdk/03-custom-prompt.ts +0 -62
  275. package/pi.dev-src/pi-mono/coding-agent/examples/sdk/04-skills.ts +0 -55
  276. package/pi.dev-src/pi-mono/coding-agent/examples/sdk/05-tools.ts +0 -44
  277. package/pi.dev-src/pi-mono/coding-agent/examples/sdk/06-extensions.ts +0 -90
  278. package/pi.dev-src/pi-mono/coding-agent/examples/sdk/07-context-files.ts +0 -42
  279. package/pi.dev-src/pi-mono/coding-agent/examples/sdk/08-prompt-templates.ts +0 -51
  280. package/pi.dev-src/pi-mono/coding-agent/examples/sdk/09-api-keys-and-oauth.ts +0 -48
  281. package/pi.dev-src/pi-mono/coding-agent/examples/sdk/10-settings.ts +0 -53
  282. package/pi.dev-src/pi-mono/coding-agent/examples/sdk/11-sessions.ts +0 -48
  283. package/pi.dev-src/pi-mono/coding-agent/examples/sdk/12-full-control.ts +0 -73
  284. package/pi.dev-src/pi-mono/coding-agent/examples/sdk/13-session-runtime.ts +0 -67
  285. package/pi.dev-src/pi-mono/coding-agent/scripts/migrate-sessions.sh +0 -93
  286. package/pi.dev-src/pi-mono/coding-agent/src/bun/cli.ts +0 -6
  287. package/pi.dev-src/pi-mono/coding-agent/src/bun/register-bedrock.ts +0 -4
  288. package/pi.dev-src/pi-mono/coding-agent/src/cli/args.ts +0 -335
  289. package/pi.dev-src/pi-mono/coding-agent/src/cli/config-selector.ts +0 -52
  290. package/pi.dev-src/pi-mono/coding-agent/src/cli/file-processor.ts +0 -100
  291. package/pi.dev-src/pi-mono/coding-agent/src/cli/initial-message.ts +0 -43
  292. package/pi.dev-src/pi-mono/coding-agent/src/cli/list-models.ts +0 -110
  293. package/pi.dev-src/pi-mono/coding-agent/src/cli/session-picker.ts +0 -52
  294. package/pi.dev-src/pi-mono/coding-agent/src/cli.ts +0 -17
  295. package/pi.dev-src/pi-mono/coding-agent/src/config.ts +0 -261
  296. package/pi.dev-src/pi-mono/coding-agent/src/core/agent-session-runtime.ts +0 -394
  297. package/pi.dev-src/pi-mono/coding-agent/src/core/agent-session-services.ts +0 -196
  298. package/pi.dev-src/pi-mono/coding-agent/src/core/agent-session.ts +0 -3096
  299. package/pi.dev-src/pi-mono/coding-agent/src/core/auth-storage.ts +0 -493
  300. package/pi.dev-src/pi-mono/coding-agent/src/core/bash-executor.ts +0 -154
  301. package/pi.dev-src/pi-mono/coding-agent/src/core/compaction/branch-summarization.ts +0 -355
  302. package/pi.dev-src/pi-mono/coding-agent/src/core/compaction/compaction.ts +0 -839
  303. package/pi.dev-src/pi-mono/coding-agent/src/core/compaction/index.ts +0 -7
  304. package/pi.dev-src/pi-mono/coding-agent/src/core/compaction/utils.ts +0 -170
  305. package/pi.dev-src/pi-mono/coding-agent/src/core/defaults.ts +0 -3
  306. package/pi.dev-src/pi-mono/coding-agent/src/core/diagnostics.ts +0 -15
  307. package/pi.dev-src/pi-mono/coding-agent/src/core/event-bus.ts +0 -33
  308. package/pi.dev-src/pi-mono/coding-agent/src/core/exec.ts +0 -107
  309. package/pi.dev-src/pi-mono/coding-agent/src/core/export-html/ansi-to-html.ts +0 -258
  310. package/pi.dev-src/pi-mono/coding-agent/src/core/export-html/index.ts +0 -314
  311. package/pi.dev-src/pi-mono/coding-agent/src/core/export-html/template.css +0 -1017
  312. package/pi.dev-src/pi-mono/coding-agent/src/core/export-html/template.html +0 -55
  313. package/pi.dev-src/pi-mono/coding-agent/src/core/export-html/template.js +0 -1770
  314. package/pi.dev-src/pi-mono/coding-agent/src/core/export-html/tool-renderer.ts +0 -158
  315. package/pi.dev-src/pi-mono/coding-agent/src/core/export-html/vendor/highlight.min.js +0 -1213
  316. package/pi.dev-src/pi-mono/coding-agent/src/core/export-html/vendor/marked.min.js +0 -6
  317. package/pi.dev-src/pi-mono/coding-agent/src/core/extensions/index.ts +0 -171
  318. package/pi.dev-src/pi-mono/coding-agent/src/core/extensions/loader.ts +0 -606
  319. package/pi.dev-src/pi-mono/coding-agent/src/core/extensions/runner.ts +0 -1019
  320. package/pi.dev-src/pi-mono/coding-agent/src/core/extensions/types.ts +0 -1542
  321. package/pi.dev-src/pi-mono/coding-agent/src/core/extensions/wrapper.ts +0 -30
  322. package/pi.dev-src/pi-mono/coding-agent/src/core/footer-data-provider.ts +0 -354
  323. package/pi.dev-src/pi-mono/coding-agent/src/core/index.ts +0 -77
  324. package/pi.dev-src/pi-mono/coding-agent/src/core/keybindings.ts +0 -370
  325. package/pi.dev-src/pi-mono/coding-agent/src/core/messages.ts +0 -195
  326. package/pi.dev-src/pi-mono/coding-agent/src/core/model-registry.ts +0 -858
  327. package/pi.dev-src/pi-mono/coding-agent/src/core/model-resolver.ts +0 -629
  328. package/pi.dev-src/pi-mono/coding-agent/src/core/output-guard.ts +0 -74
  329. package/pi.dev-src/pi-mono/coding-agent/src/core/package-manager.ts +0 -2408
  330. package/pi.dev-src/pi-mono/coding-agent/src/core/prompt-templates.ts +0 -296
  331. package/pi.dev-src/pi-mono/coding-agent/src/core/resolve-config-value.ts +0 -142
  332. package/pi.dev-src/pi-mono/coding-agent/src/core/resource-loader.ts +0 -917
  333. package/pi.dev-src/pi-mono/coding-agent/src/core/sdk.ts +0 -380
  334. package/pi.dev-src/pi-mono/coding-agent/src/core/session-cwd.ts +0 -59
  335. package/pi.dev-src/pi-mono/coding-agent/src/core/session-manager.ts +0 -1425
  336. package/pi.dev-src/pi-mono/coding-agent/src/core/settings-manager.ts +0 -999
  337. package/pi.dev-src/pi-mono/coding-agent/src/core/skills.ts +0 -508
  338. package/pi.dev-src/pi-mono/coding-agent/src/core/slash-commands.ts +0 -39
  339. package/pi.dev-src/pi-mono/coding-agent/src/core/source-info.ts +0 -40
  340. package/pi.dev-src/pi-mono/coding-agent/src/core/system-prompt.ts +0 -172
  341. package/pi.dev-src/pi-mono/coding-agent/src/core/telemetry.ts +0 -13
  342. package/pi.dev-src/pi-mono/coding-agent/src/core/timings.ts +0 -31
  343. package/pi.dev-src/pi-mono/coding-agent/src/core/tools/bash.ts +0 -448
  344. package/pi.dev-src/pi-mono/coding-agent/src/core/tools/edit-diff.ts +0 -445
  345. package/pi.dev-src/pi-mono/coding-agent/src/core/tools/edit.ts +0 -487
  346. package/pi.dev-src/pi-mono/coding-agent/src/core/tools/file-mutation-queue.ts +0 -39
  347. package/pi.dev-src/pi-mono/coding-agent/src/core/tools/find.ts +0 -370
  348. package/pi.dev-src/pi-mono/coding-agent/src/core/tools/grep.ts +0 -384
  349. package/pi.dev-src/pi-mono/coding-agent/src/core/tools/index.ts +0 -196
  350. package/pi.dev-src/pi-mono/coding-agent/src/core/tools/ls.ts +0 -229
  351. package/pi.dev-src/pi-mono/coding-agent/src/core/tools/path-utils.ts +0 -94
  352. package/pi.dev-src/pi-mono/coding-agent/src/core/tools/read.ts +0 -273
  353. package/pi.dev-src/pi-mono/coding-agent/src/core/tools/render-utils.ts +0 -64
  354. package/pi.dev-src/pi-mono/coding-agent/src/core/tools/tool-definition-wrapper.ts +0 -45
  355. package/pi.dev-src/pi-mono/coding-agent/src/core/tools/truncate.ts +0 -265
  356. package/pi.dev-src/pi-mono/coding-agent/src/core/tools/write.ts +0 -281
  357. package/pi.dev-src/pi-mono/coding-agent/src/index.ts +0 -352
  358. package/pi.dev-src/pi-mono/coding-agent/src/main.ts +0 -731
  359. package/pi.dev-src/pi-mono/coding-agent/src/migrations.ts +0 -314
  360. package/pi.dev-src/pi-mono/coding-agent/src/modes/index.ts +0 -9
  361. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/assets/clankolas.png +0 -0
  362. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/armin.ts +0 -382
  363. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/assistant-message.ts +0 -147
  364. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/bash-execution.ts +0 -218
  365. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/bordered-loader.ts +0 -68
  366. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/branch-summary-message.ts +0 -58
  367. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/compaction-summary-message.ts +0 -59
  368. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/config-selector.ts +0 -592
  369. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/countdown-timer.ts +0 -38
  370. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/custom-editor.ts +0 -80
  371. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/custom-message.ts +0 -99
  372. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/daxnuts.ts +0 -164
  373. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/diff.ts +0 -147
  374. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/dynamic-border.ts +0 -25
  375. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/earendil-announcement.ts +0 -53
  376. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/extension-editor.ts +0 -147
  377. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/extension-input.ts +0 -87
  378. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/extension-selector.ts +0 -107
  379. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/footer.ts +0 -220
  380. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/index.ts +0 -32
  381. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/keybinding-hints.ts +0 -24
  382. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/login-dialog.ts +0 -178
  383. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/model-selector.ts +0 -338
  384. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/oauth-selector.ts +0 -121
  385. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/scoped-models-selector.ts +0 -355
  386. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/session-selector-search.ts +0 -194
  387. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/session-selector.ts +0 -1026
  388. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/settings-selector.ts +0 -456
  389. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/show-images-selector.ts +0 -50
  390. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/skill-invocation-message.ts +0 -55
  391. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/theme-selector.ts +0 -67
  392. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/thinking-selector.ts +0 -74
  393. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/tool-execution.ts +0 -352
  394. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/tree-selector.ts +0 -1246
  395. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/user-message-selector.ts +0 -155
  396. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/user-message.ts +0 -35
  397. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/components/visual-truncate.ts +0 -50
  398. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/interactive-mode.ts +0 -5155
  399. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/theme/dark.json +0 -85
  400. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/theme/light.json +0 -84
  401. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/theme/theme-schema.json +0 -335
  402. package/pi.dev-src/pi-mono/coding-agent/src/modes/interactive/theme/theme.ts +0 -1141
  403. package/pi.dev-src/pi-mono/coding-agent/src/modes/print-mode.ts +0 -158
  404. package/pi.dev-src/pi-mono/coding-agent/src/modes/rpc/jsonl.ts +0 -58
  405. package/pi.dev-src/pi-mono/coding-agent/src/modes/rpc/rpc-client.ts +0 -515
  406. package/pi.dev-src/pi-mono/coding-agent/src/modes/rpc/rpc-mode.ts +0 -745
  407. package/pi.dev-src/pi-mono/coding-agent/src/modes/rpc/rpc-types.ts +0 -264
  408. package/pi.dev-src/pi-mono/coding-agent/src/package-manager-cli.ts +0 -270
  409. package/pi.dev-src/pi-mono/coding-agent/src/utils/changelog.ts +0 -99
  410. package/pi.dev-src/pi-mono/coding-agent/src/utils/child-process.ts +0 -86
  411. package/pi.dev-src/pi-mono/coding-agent/src/utils/clipboard-image.ts +0 -300
  412. package/pi.dev-src/pi-mono/coding-agent/src/utils/clipboard-native.ts +0 -22
  413. package/pi.dev-src/pi-mono/coding-agent/src/utils/clipboard.ts +0 -81
  414. package/pi.dev-src/pi-mono/coding-agent/src/utils/exif-orientation.ts +0 -183
  415. package/pi.dev-src/pi-mono/coding-agent/src/utils/frontmatter.ts +0 -39
  416. package/pi.dev-src/pi-mono/coding-agent/src/utils/fs-watch.ts +0 -30
  417. package/pi.dev-src/pi-mono/coding-agent/src/utils/git.ts +0 -192
  418. package/pi.dev-src/pi-mono/coding-agent/src/utils/image-convert.ts +0 -41
  419. package/pi.dev-src/pi-mono/coding-agent/src/utils/image-resize.ts +0 -176
  420. package/pi.dev-src/pi-mono/coding-agent/src/utils/mime.ts +0 -30
  421. package/pi.dev-src/pi-mono/coding-agent/src/utils/paths.ts +0 -20
  422. package/pi.dev-src/pi-mono/coding-agent/src/utils/photon.ts +0 -139
  423. package/pi.dev-src/pi-mono/coding-agent/src/utils/shell.ts +0 -210
  424. package/pi.dev-src/pi-mono/coding-agent/src/utils/sleep.ts +0 -18
  425. package/pi.dev-src/pi-mono/coding-agent/src/utils/tools-manager.ts +0 -287
  426. package/pi.dev-src/pi-mono/coding-agent/test/agent-session-auto-compaction-queue.test.ts +0 -437
  427. package/pi.dev-src/pi-mono/coding-agent/test/agent-session-branching.test.ts +0 -156
  428. package/pi.dev-src/pi-mono/coding-agent/test/agent-session-compaction.test.ts +0 -208
  429. package/pi.dev-src/pi-mono/coding-agent/test/agent-session-concurrent.test.ts +0 -618
  430. package/pi.dev-src/pi-mono/coding-agent/test/agent-session-dynamic-provider.test.ts +0 -117
  431. package/pi.dev-src/pi-mono/coding-agent/test/agent-session-dynamic-tools.test.ts +0 -182
  432. package/pi.dev-src/pi-mono/coding-agent/test/agent-session-retry.test.ts +0 -318
  433. package/pi.dev-src/pi-mono/coding-agent/test/agent-session-runtime-events.test.ts +0 -208
  434. package/pi.dev-src/pi-mono/coding-agent/test/agent-session-stats.test.ts +0 -143
  435. package/pi.dev-src/pi-mono/coding-agent/test/agent-session-tree-navigation.test.ts +0 -323
  436. package/pi.dev-src/pi-mono/coding-agent/test/args.test.ts +0 -328
  437. package/pi.dev-src/pi-mono/coding-agent/test/assistant-message.test.ts +0 -57
  438. package/pi.dev-src/pi-mono/coding-agent/test/auth-storage.test.ts +0 -462
  439. package/pi.dev-src/pi-mono/coding-agent/test/bash-close-hang-windows.test.ts +0 -126
  440. package/pi.dev-src/pi-mono/coding-agent/test/bash-execution-width.test.ts +0 -80
  441. package/pi.dev-src/pi-mono/coding-agent/test/block-images.test.ts +0 -120
  442. package/pi.dev-src/pi-mono/coding-agent/test/clipboard-image-bmp-conversion.test.ts +0 -88
  443. package/pi.dev-src/pi-mono/coding-agent/test/clipboard-image.test.ts +0 -136
  444. package/pi.dev-src/pi-mono/coding-agent/test/compaction-extensions-example.test.ts +0 -66
  445. package/pi.dev-src/pi-mono/coding-agent/test/compaction-extensions.test.ts +0 -415
  446. package/pi.dev-src/pi-mono/coding-agent/test/compaction-serialization.test.ts +0 -79
  447. package/pi.dev-src/pi-mono/coding-agent/test/compaction-summary-reasoning.test.ts +0 -118
  448. package/pi.dev-src/pi-mono/coding-agent/test/compaction-thinking-model.test.ts +0 -223
  449. package/pi.dev-src/pi-mono/coding-agent/test/compaction.test.ts +0 -550
  450. package/pi.dev-src/pi-mono/coding-agent/test/config.test.ts +0 -30
  451. package/pi.dev-src/pi-mono/coding-agent/test/edit-tool-legacy-input.test.ts +0 -116
  452. package/pi.dev-src/pi-mono/coding-agent/test/edit-tool-no-full-redraw.test.ts +0 -235
  453. package/pi.dev-src/pi-mono/coding-agent/test/export-html-whitespace.test.ts +0 -12
  454. package/pi.dev-src/pi-mono/coding-agent/test/export-html-xss.test.ts +0 -28
  455. package/pi.dev-src/pi-mono/coding-agent/test/extensions-discovery.test.ts +0 -463
  456. package/pi.dev-src/pi-mono/coding-agent/test/extensions-input-event.test.ts +0 -112
  457. package/pi.dev-src/pi-mono/coding-agent/test/extensions-runner.test.ts +0 -805
  458. package/pi.dev-src/pi-mono/coding-agent/test/file-mutation-queue.test.ts +0 -163
  459. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/assistant-message-with-thinking-code.json +0 -33
  460. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/before-compaction.jsonl +0 -1003
  461. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/empty-agent/.gitkeep +0 -0
  462. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/empty-cwd/.gitkeep +0 -0
  463. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/large-session.jsonl +0 -1019
  464. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/skills/consecutive-hyphens/SKILL.md +0 -8
  465. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/skills/disable-model-invocation/SKILL.md +0 -9
  466. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/skills/invalid-name-chars/SKILL.md +0 -8
  467. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/skills/invalid-yaml/SKILL.md +0 -8
  468. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/skills/long-name/SKILL.md +0 -8
  469. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/skills/missing-description/SKILL.md +0 -7
  470. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/skills/multiline-description/SKILL.md +0 -11
  471. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/skills/name-mismatch/SKILL.md +0 -8
  472. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/skills/nested/child-skill/SKILL.md +0 -8
  473. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/skills/no-frontmatter/SKILL.md +0 -3
  474. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/skills/root-skill-preferred/SKILL.md +0 -3
  475. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/skills/root-skill-preferred/nested-child/SKILL.md +0 -3
  476. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/skills/unknown-field/SKILL.md +0 -10
  477. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/skills/valid-skill/SKILL.md +0 -8
  478. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/skills-collision/first/calendar/SKILL.md +0 -8
  479. package/pi.dev-src/pi-mono/coding-agent/test/fixtures/skills-collision/second/calendar/SKILL.md +0 -8
  480. package/pi.dev-src/pi-mono/coding-agent/test/footer-data-provider.test.ts +0 -265
  481. package/pi.dev-src/pi-mono/coding-agent/test/footer-width.test.ts +0 -115
  482. package/pi.dev-src/pi-mono/coding-agent/test/frontmatter.test.ts +0 -60
  483. package/pi.dev-src/pi-mono/coding-agent/test/git-ssh-url.test.ts +0 -78
  484. package/pi.dev-src/pi-mono/coding-agent/test/git-update.test.ts +0 -411
  485. package/pi.dev-src/pi-mono/coding-agent/test/image-processing.test.ts +0 -145
  486. package/pi.dev-src/pi-mono/coding-agent/test/image-resize-callers.test.ts +0 -53
  487. package/pi.dev-src/pi-mono/coding-agent/test/initial-message.test.ts +0 -48
  488. package/pi.dev-src/pi-mono/coding-agent/test/interactive-mode-anthropic-warning.test.ts +0 -73
  489. package/pi.dev-src/pi-mono/coding-agent/test/interactive-mode-clone-command.test.ts +0 -77
  490. package/pi.dev-src/pi-mono/coding-agent/test/interactive-mode-compaction.test.ts +0 -57
  491. package/pi.dev-src/pi-mono/coding-agent/test/interactive-mode-import-command.test.ts +0 -144
  492. package/pi.dev-src/pi-mono/coding-agent/test/interactive-mode-status.test.ts +0 -635
  493. package/pi.dev-src/pi-mono/coding-agent/test/interactive-mode-suspend.test.ts +0 -149
  494. package/pi.dev-src/pi-mono/coding-agent/test/keybindings-migration.test.ts +0 -88
  495. package/pi.dev-src/pi-mono/coding-agent/test/model-registry.test.ts +0 -1209
  496. package/pi.dev-src/pi-mono/coding-agent/test/model-resolver.test.ts +0 -436
  497. package/pi.dev-src/pi-mono/coding-agent/test/package-command-paths.test.ts +0 -144
  498. package/pi.dev-src/pi-mono/coding-agent/test/package-manager-ssh.test.ts +0 -97
  499. package/pi.dev-src/pi-mono/coding-agent/test/package-manager.test.ts +0 -1795
  500. package/pi.dev-src/pi-mono/coding-agent/test/path-utils.test.ts +0 -162
  501. package/pi.dev-src/pi-mono/coding-agent/test/plan-mode-utils.test.ts +0 -261
  502. package/pi.dev-src/pi-mono/coding-agent/test/print-mode.test.ts +0 -140
  503. package/pi.dev-src/pi-mono/coding-agent/test/prompt-templates.test.ts +0 -515
  504. package/pi.dev-src/pi-mono/coding-agent/test/resource-loader.test.ts +0 -576
  505. package/pi.dev-src/pi-mono/coding-agent/test/rpc-client-clone.test.ts +0 -29
  506. package/pi.dev-src/pi-mono/coding-agent/test/rpc-example.ts +0 -86
  507. package/pi.dev-src/pi-mono/coding-agent/test/rpc-jsonl.test.ts +0 -65
  508. package/pi.dev-src/pi-mono/coding-agent/test/rpc-prompt-response-semantics.test.ts +0 -285
  509. package/pi.dev-src/pi-mono/coding-agent/test/rpc.test.ts +0 -321
  510. package/pi.dev-src/pi-mono/coding-agent/test/sdk-codex-cache-probe-tool-loop.ts +0 -364
  511. package/pi.dev-src/pi-mono/coding-agent/test/sdk-openrouter-attribution.test.ts +0 -181
  512. package/pi.dev-src/pi-mono/coding-agent/test/sdk-session-manager.test.ts +0 -95
  513. package/pi.dev-src/pi-mono/coding-agent/test/sdk-skills.test.ts +0 -109
  514. package/pi.dev-src/pi-mono/coding-agent/test/session-cwd.test.ts +0 -91
  515. package/pi.dev-src/pi-mono/coding-agent/test/session-info-modified-timestamp.test.ts +0 -83
  516. package/pi.dev-src/pi-mono/coding-agent/test/session-manager/build-context.test.ts +0 -268
  517. package/pi.dev-src/pi-mono/coding-agent/test/session-manager/custom-session-id.test.ts +0 -109
  518. package/pi.dev-src/pi-mono/coding-agent/test/session-manager/file-operations.test.ts +0 -208
  519. package/pi.dev-src/pi-mono/coding-agent/test/session-manager/labels.test.ts +0 -198
  520. package/pi.dev-src/pi-mono/coding-agent/test/session-manager/migration.test.ts +0 -78
  521. package/pi.dev-src/pi-mono/coding-agent/test/session-manager/save-entry.test.ts +0 -55
  522. package/pi.dev-src/pi-mono/coding-agent/test/session-manager/tree-traversal.test.ts +0 -533
  523. package/pi.dev-src/pi-mono/coding-agent/test/session-selector-path-delete.test.ts +0 -315
  524. package/pi.dev-src/pi-mono/coding-agent/test/session-selector-rename.test.ts +0 -111
  525. package/pi.dev-src/pi-mono/coding-agent/test/session-selector-search.test.ts +0 -195
  526. package/pi.dev-src/pi-mono/coding-agent/test/settings-manager-bug.test.ts +0 -147
  527. package/pi.dev-src/pi-mono/coding-agent/test/settings-manager.test.ts +0 -319
  528. package/pi.dev-src/pi-mono/coding-agent/test/skills.test.ts +0 -432
  529. package/pi.dev-src/pi-mono/coding-agent/test/stdout-cleanliness.test.ts +0 -103
  530. package/pi.dev-src/pi-mono/coding-agent/test/streaming-render-debug.ts +0 -97
  531. package/pi.dev-src/pi-mono/coding-agent/test/suite/agent-session-bash-persistence.test.ts +0 -242
  532. package/pi.dev-src/pi-mono/coding-agent/test/suite/agent-session-compaction.test.ts +0 -343
  533. package/pi.dev-src/pi-mono/coding-agent/test/suite/agent-session-model-extension.test.ts +0 -325
  534. package/pi.dev-src/pi-mono/coding-agent/test/suite/agent-session-prompt.test.ts +0 -323
  535. package/pi.dev-src/pi-mono/coding-agent/test/suite/agent-session-queue.test.ts +0 -422
  536. package/pi.dev-src/pi-mono/coding-agent/test/suite/agent-session-retry-events.test.ts +0 -358
  537. package/pi.dev-src/pi-mono/coding-agent/test/suite/agent-session-runtime.test.ts +0 -553
  538. package/pi.dev-src/pi-mono/coding-agent/test/suite/harness.ts +0 -208
  539. package/pi.dev-src/pi-mono/coding-agent/test/suite/regressions/2023-queued-slash-command-followup.test.ts +0 -80
  540. package/pi.dev-src/pi-mono/coding-agent/test/suite/regressions/2753-reload-stale-resource-settings.test.ts +0 -100
  541. package/pi.dev-src/pi-mono/coding-agent/test/suite/regressions/2781-skill-collision-precedence.test.ts +0 -120
  542. package/pi.dev-src/pi-mono/coding-agent/test/suite/regressions/2791-fswatch-error-crash.test.ts +0 -106
  543. package/pi.dev-src/pi-mono/coding-agent/test/suite/regressions/2835-tools-allowlist-filters-extension-tools.test.ts +0 -94
  544. package/pi.dev-src/pi-mono/coding-agent/test/suite/regressions/2860-replaced-session-context.test.ts +0 -274
  545. package/pi.dev-src/pi-mono/coding-agent/test/suite/regressions/3217-scoped-model-order.test.ts +0 -104
  546. package/pi.dev-src/pi-mono/coding-agent/test/suite/regressions/3302-find-path-glob.test.ts +0 -72
  547. package/pi.dev-src/pi-mono/coding-agent/test/suite/regressions/3303-find-nested-gitignore.test.ts +0 -83
  548. package/pi.dev-src/pi-mono/coding-agent/test/suite/regressions/3317-network-connection-lost-retry.test.ts +0 -33
  549. package/pi.dev-src/pi-mono/coding-agent/test/system-prompt.test.ts +0 -102
  550. package/pi.dev-src/pi-mono/coding-agent/test/test-harness.test.ts +0 -321
  551. package/pi.dev-src/pi-mono/coding-agent/test/test-harness.ts +0 -446
  552. package/pi.dev-src/pi-mono/coding-agent/test/test-theme-colors.ts +0 -246
  553. package/pi.dev-src/pi-mono/coding-agent/test/theme-export.test.ts +0 -104
  554. package/pi.dev-src/pi-mono/coding-agent/test/tool-execution-component.test.ts +0 -331
  555. package/pi.dev-src/pi-mono/coding-agent/test/tools.test.ts +0 -889
  556. package/pi.dev-src/pi-mono/coding-agent/test/tree-selector.test.ts +0 -655
  557. package/pi.dev-src/pi-mono/coding-agent/test/trigger-compact-extension.test.ts +0 -57
  558. package/pi.dev-src/pi-mono/coding-agent/test/truncate-to-width.test.ts +0 -81
  559. package/pi.dev-src/pi-mono/coding-agent/test/user-message.test.ts +0 -25
  560. package/pi.dev-src/pi-mono/coding-agent/test/utilities.ts +0 -316
  561. package/pi.dev-src/pi-mono/coding-agent/tsconfig.examples.json +0 -16
  562. package/pi.dev-src/pi-mono/coding-agent/vitest.config.ts +0 -26
  563. package/pi.dev-src/pi-mono/mom/dev.sh +0 -30
  564. package/pi.dev-src/pi-mono/mom/docker.sh +0 -95
  565. package/pi.dev-src/pi-mono/mom/scripts/migrate-timestamps.ts +0 -121
  566. package/pi.dev-src/pi-mono/mom/src/agent.ts +0 -882
  567. package/pi.dev-src/pi-mono/mom/src/context.ts +0 -180
  568. package/pi.dev-src/pi-mono/mom/src/download.ts +0 -117
  569. package/pi.dev-src/pi-mono/mom/src/events.ts +0 -442
  570. package/pi.dev-src/pi-mono/mom/src/fs-watch.ts +0 -30
  571. package/pi.dev-src/pi-mono/mom/src/log.ts +0 -271
  572. package/pi.dev-src/pi-mono/mom/src/main.ts +0 -367
  573. package/pi.dev-src/pi-mono/mom/src/sandbox.ts +0 -221
  574. package/pi.dev-src/pi-mono/mom/src/slack.ts +0 -623
  575. package/pi.dev-src/pi-mono/mom/src/store.ts +0 -234
  576. package/pi.dev-src/pi-mono/mom/src/tools/attach.ts +0 -47
  577. package/pi.dev-src/pi-mono/mom/src/tools/bash.ts +0 -97
  578. package/pi.dev-src/pi-mono/mom/src/tools/edit.ts +0 -165
  579. package/pi.dev-src/pi-mono/mom/src/tools/index.ts +0 -19
  580. package/pi.dev-src/pi-mono/mom/src/tools/read.ts +0 -159
  581. package/pi.dev-src/pi-mono/mom/src/tools/truncate.ts +0 -236
  582. package/pi.dev-src/pi-mono/mom/src/tools/write.ts +0 -45
  583. package/pi.dev-src/pi-mono/mom/test/events.test.ts +0 -50
  584. package/pi.dev-src/pi-mono/pods/scripts/model_run.sh +0 -83
  585. package/pi.dev-src/pi-mono/pods/scripts/pod_setup.sh +0 -336
  586. package/pi.dev-src/pi-mono/pods/src/cli.ts +0 -360
  587. package/pi.dev-src/pi-mono/pods/src/commands/models.ts +0 -753
  588. package/pi.dev-src/pi-mono/pods/src/commands/pods.ts +0 -205
  589. package/pi.dev-src/pi-mono/pods/src/commands/prompt.ts +0 -84
  590. package/pi.dev-src/pi-mono/pods/src/config.ts +0 -80
  591. package/pi.dev-src/pi-mono/pods/src/index.ts +0 -2
  592. package/pi.dev-src/pi-mono/pods/src/model-configs.ts +0 -111
  593. package/pi.dev-src/pi-mono/pods/src/models.json +0 -295
  594. package/pi.dev-src/pi-mono/pods/src/ssh.ts +0 -151
  595. package/pi.dev-src/pi-mono/pods/src/types.ts +0 -27
  596. package/pi.dev-src/pi-mono/tui/src/autocomplete.ts +0 -783
  597. package/pi.dev-src/pi-mono/tui/src/components/box.ts +0 -137
  598. package/pi.dev-src/pi-mono/tui/src/components/cancellable-loader.ts +0 -40
  599. package/pi.dev-src/pi-mono/tui/src/components/editor.ts +0 -2280
  600. package/pi.dev-src/pi-mono/tui/src/components/image.ts +0 -104
  601. package/pi.dev-src/pi-mono/tui/src/components/input.ts +0 -503
  602. package/pi.dev-src/pi-mono/tui/src/components/loader.ts +0 -86
  603. package/pi.dev-src/pi-mono/tui/src/components/markdown.ts +0 -852
  604. package/pi.dev-src/pi-mono/tui/src/components/select-list.ts +0 -229
  605. package/pi.dev-src/pi-mono/tui/src/components/settings-list.ts +0 -250
  606. package/pi.dev-src/pi-mono/tui/src/components/spacer.ts +0 -28
  607. package/pi.dev-src/pi-mono/tui/src/components/text.ts +0 -106
  608. package/pi.dev-src/pi-mono/tui/src/components/truncated-text.ts +0 -65
  609. package/pi.dev-src/pi-mono/tui/src/editor-component.ts +0 -74
  610. package/pi.dev-src/pi-mono/tui/src/fuzzy.ts +0 -133
  611. package/pi.dev-src/pi-mono/tui/src/index.ts +0 -106
  612. package/pi.dev-src/pi-mono/tui/src/keybindings.ts +0 -244
  613. package/pi.dev-src/pi-mono/tui/src/keys.ts +0 -1400
  614. package/pi.dev-src/pi-mono/tui/src/kill-ring.ts +0 -46
  615. package/pi.dev-src/pi-mono/tui/src/stdin-buffer.ts +0 -386
  616. package/pi.dev-src/pi-mono/tui/src/terminal-image.ts +0 -414
  617. package/pi.dev-src/pi-mono/tui/src/terminal.ts +0 -373
  618. package/pi.dev-src/pi-mono/tui/src/tui.ts +0 -1243
  619. package/pi.dev-src/pi-mono/tui/src/undo-stack.ts +0 -28
  620. package/pi.dev-src/pi-mono/tui/src/utils.ts +0 -1085
  621. package/pi.dev-src/pi-mono/tui/test/autocomplete.test.ts +0 -542
  622. package/pi.dev-src/pi-mono/tui/test/bug-regression-isimageline-startswith-bug.test.ts +0 -237
  623. package/pi.dev-src/pi-mono/tui/test/chat-simple.ts +0 -129
  624. package/pi.dev-src/pi-mono/tui/test/editor.test.ts +0 -3812
  625. package/pi.dev-src/pi-mono/tui/test/fuzzy.test.ts +0 -98
  626. package/pi.dev-src/pi-mono/tui/test/image-test.ts +0 -56
  627. package/pi.dev-src/pi-mono/tui/test/input.test.ts +0 -580
  628. package/pi.dev-src/pi-mono/tui/test/key-tester.ts +0 -105
  629. package/pi.dev-src/pi-mono/tui/test/keybindings.test.ts +0 -38
  630. package/pi.dev-src/pi-mono/tui/test/keys.test.ts +0 -614
  631. package/pi.dev-src/pi-mono/tui/test/markdown.test.ts +0 -1236
  632. package/pi.dev-src/pi-mono/tui/test/overlay-non-capturing.test.ts +0 -609
  633. package/pi.dev-src/pi-mono/tui/test/overlay-options.test.ts +0 -538
  634. package/pi.dev-src/pi-mono/tui/test/overlay-short-content.test.ts +0 -56
  635. package/pi.dev-src/pi-mono/tui/test/regression-regional-indicator-width.test.ts +0 -52
  636. package/pi.dev-src/pi-mono/tui/test/select-list.test.ts +0 -116
  637. package/pi.dev-src/pi-mono/tui/test/stdin-buffer.test.ts +0 -422
  638. package/pi.dev-src/pi-mono/tui/test/terminal-image.test.ts +0 -279
  639. package/pi.dev-src/pi-mono/tui/test/test-themes.ts +0 -38
  640. package/pi.dev-src/pi-mono/tui/test/truncate-to-width.test.ts +0 -62
  641. package/pi.dev-src/pi-mono/tui/test/truncated-text.test.ts +0 -129
  642. package/pi.dev-src/pi-mono/tui/test/tui-cell-size-input.test.ts +0 -81
  643. package/pi.dev-src/pi-mono/tui/test/tui-overlay-style-leak.test.ts +0 -72
  644. package/pi.dev-src/pi-mono/tui/test/tui-render.test.ts +0 -509
  645. package/pi.dev-src/pi-mono/tui/test/viewport-overwrite-repro.ts +0 -106
  646. package/pi.dev-src/pi-mono/tui/test/virtual-terminal.ts +0 -218
  647. package/pi.dev-src/pi-mono/tui/test/wrap-ansi.test.ts +0 -207
  648. package/pi.dev-src/pi-mono/tui/vitest.config.ts +0 -7
  649. package/pi.dev-src/pi-mono/web-ui/example/index.html +0 -13
  650. package/pi.dev-src/pi-mono/web-ui/example/src/app.css +0 -1
  651. package/pi.dev-src/pi-mono/web-ui/example/src/custom-messages.ts +0 -99
  652. package/pi.dev-src/pi-mono/web-ui/example/src/main.ts +0 -421
  653. package/pi.dev-src/pi-mono/web-ui/example/tsconfig.json +0 -23
  654. package/pi.dev-src/pi-mono/web-ui/example/vite.config.ts +0 -6
  655. package/pi.dev-src/pi-mono/web-ui/scripts/count-prompt-tokens.ts +0 -88
  656. package/pi.dev-src/pi-mono/web-ui/src/ChatPanel.ts +0 -209
  657. package/pi.dev-src/pi-mono/web-ui/src/app.css +0 -68
  658. package/pi.dev-src/pi-mono/web-ui/src/components/AgentInterface.ts +0 -403
  659. package/pi.dev-src/pi-mono/web-ui/src/components/AttachmentTile.ts +0 -107
  660. package/pi.dev-src/pi-mono/web-ui/src/components/ConsoleBlock.ts +0 -72
  661. package/pi.dev-src/pi-mono/web-ui/src/components/CustomProviderCard.ts +0 -100
  662. package/pi.dev-src/pi-mono/web-ui/src/components/ExpandableSection.ts +0 -46
  663. package/pi.dev-src/pi-mono/web-ui/src/components/Input.ts +0 -113
  664. package/pi.dev-src/pi-mono/web-ui/src/components/MessageEditor.ts +0 -405
  665. package/pi.dev-src/pi-mono/web-ui/src/components/MessageList.ts +0 -98
  666. package/pi.dev-src/pi-mono/web-ui/src/components/Messages.ts +0 -383
  667. package/pi.dev-src/pi-mono/web-ui/src/components/ProviderKeyInput.ts +0 -153
  668. package/pi.dev-src/pi-mono/web-ui/src/components/SandboxedIframe.ts +0 -626
  669. package/pi.dev-src/pi-mono/web-ui/src/components/StreamingMessageContainer.ts +0 -103
  670. package/pi.dev-src/pi-mono/web-ui/src/components/ThinkingBlock.ts +0 -43
  671. package/pi.dev-src/pi-mono/web-ui/src/components/message-renderer-registry.ts +0 -28
  672. package/pi.dev-src/pi-mono/web-ui/src/components/sandbox/ArtifactsRuntimeProvider.ts +0 -220
  673. package/pi.dev-src/pi-mono/web-ui/src/components/sandbox/AttachmentsRuntimeProvider.ts +0 -66
  674. package/pi.dev-src/pi-mono/web-ui/src/components/sandbox/ConsoleRuntimeProvider.ts +0 -186
  675. package/pi.dev-src/pi-mono/web-ui/src/components/sandbox/FileDownloadRuntimeProvider.ts +0 -110
  676. package/pi.dev-src/pi-mono/web-ui/src/components/sandbox/RuntimeMessageBridge.ts +0 -82
  677. package/pi.dev-src/pi-mono/web-ui/src/components/sandbox/RuntimeMessageRouter.ts +0 -216
  678. package/pi.dev-src/pi-mono/web-ui/src/components/sandbox/SandboxRuntimeProvider.ts +0 -52
  679. package/pi.dev-src/pi-mono/web-ui/src/dialogs/ApiKeyPromptDialog.ts +0 -75
  680. package/pi.dev-src/pi-mono/web-ui/src/dialogs/AttachmentOverlay.ts +0 -636
  681. package/pi.dev-src/pi-mono/web-ui/src/dialogs/CustomProviderDialog.ts +0 -274
  682. package/pi.dev-src/pi-mono/web-ui/src/dialogs/ModelSelector.ts +0 -370
  683. package/pi.dev-src/pi-mono/web-ui/src/dialogs/PersistentStorageDialog.ts +0 -144
  684. package/pi.dev-src/pi-mono/web-ui/src/dialogs/ProvidersModelsTab.ts +0 -212
  685. package/pi.dev-src/pi-mono/web-ui/src/dialogs/SessionListDialog.ts +0 -150
  686. package/pi.dev-src/pi-mono/web-ui/src/dialogs/SettingsDialog.ts +0 -218
  687. package/pi.dev-src/pi-mono/web-ui/src/index.ts +0 -120
  688. package/pi.dev-src/pi-mono/web-ui/src/prompts/prompts.ts +0 -282
  689. package/pi.dev-src/pi-mono/web-ui/src/storage/app-storage.ts +0 -60
  690. package/pi.dev-src/pi-mono/web-ui/src/storage/backends/indexeddb-storage-backend.ts +0 -193
  691. package/pi.dev-src/pi-mono/web-ui/src/storage/store.ts +0 -33
  692. package/pi.dev-src/pi-mono/web-ui/src/storage/stores/custom-providers-store.ts +0 -62
  693. package/pi.dev-src/pi-mono/web-ui/src/storage/stores/provider-keys-store.ts +0 -33
  694. package/pi.dev-src/pi-mono/web-ui/src/storage/stores/sessions-store.ts +0 -136
  695. package/pi.dev-src/pi-mono/web-ui/src/storage/stores/settings-store.ts +0 -34
  696. package/pi.dev-src/pi-mono/web-ui/src/storage/types.ts +0 -206
  697. package/pi.dev-src/pi-mono/web-ui/src/tools/artifacts/ArtifactElement.ts +0 -14
  698. package/pi.dev-src/pi-mono/web-ui/src/tools/artifacts/ArtifactPill.ts +0 -26
  699. package/pi.dev-src/pi-mono/web-ui/src/tools/artifacts/Console.ts +0 -93
  700. package/pi.dev-src/pi-mono/web-ui/src/tools/artifacts/DocxArtifact.ts +0 -213
  701. package/pi.dev-src/pi-mono/web-ui/src/tools/artifacts/ExcelArtifact.ts +0 -231
  702. package/pi.dev-src/pi-mono/web-ui/src/tools/artifacts/GenericArtifact.ts +0 -117
  703. package/pi.dev-src/pi-mono/web-ui/src/tools/artifacts/HtmlArtifact.ts +0 -195
  704. package/pi.dev-src/pi-mono/web-ui/src/tools/artifacts/ImageArtifact.ts +0 -116
  705. package/pi.dev-src/pi-mono/web-ui/src/tools/artifacts/MarkdownArtifact.ts +0 -82
  706. package/pi.dev-src/pi-mono/web-ui/src/tools/artifacts/PdfArtifact.ts +0 -201
  707. package/pi.dev-src/pi-mono/web-ui/src/tools/artifacts/SvgArtifact.ts +0 -119
  708. package/pi.dev-src/pi-mono/web-ui/src/tools/artifacts/TextArtifact.ts +0 -148
  709. package/pi.dev-src/pi-mono/web-ui/src/tools/artifacts/artifacts-tool-renderer.ts +0 -310
  710. package/pi.dev-src/pi-mono/web-ui/src/tools/artifacts/artifacts.ts +0 -713
  711. package/pi.dev-src/pi-mono/web-ui/src/tools/artifacts/index.ts +0 -7
  712. package/pi.dev-src/pi-mono/web-ui/src/tools/extract-document.ts +0 -275
  713. package/pi.dev-src/pi-mono/web-ui/src/tools/index.ts +0 -46
  714. package/pi.dev-src/pi-mono/web-ui/src/tools/javascript-repl.ts +0 -293
  715. package/pi.dev-src/pi-mono/web-ui/src/tools/renderer-registry.ts +0 -130
  716. package/pi.dev-src/pi-mono/web-ui/src/tools/renderers/BashRenderer.ts +0 -52
  717. package/pi.dev-src/pi-mono/web-ui/src/tools/renderers/CalculateRenderer.ts +0 -58
  718. package/pi.dev-src/pi-mono/web-ui/src/tools/renderers/DefaultRenderer.ts +0 -103
  719. package/pi.dev-src/pi-mono/web-ui/src/tools/renderers/GetCurrentTimeRenderer.ts +0 -92
  720. package/pi.dev-src/pi-mono/web-ui/src/tools/types.ts +0 -15
  721. package/pi.dev-src/pi-mono/web-ui/src/utils/attachment-utils.ts +0 -472
  722. package/pi.dev-src/pi-mono/web-ui/src/utils/auth-token.ts +0 -22
  723. package/pi.dev-src/pi-mono/web-ui/src/utils/format.ts +0 -42
  724. package/pi.dev-src/pi-mono/web-ui/src/utils/i18n.ts +0 -653
  725. package/pi.dev-src/pi-mono/web-ui/src/utils/model-discovery.ts +0 -277
  726. package/pi.dev-src/pi-mono/web-ui/src/utils/proxy-utils.ts +0 -139
  727. package/pi.dev-src/pi-mono/web-ui/src/utils/test-sessions.ts +0 -2357
  728. package/pi.dev-src/pi-mono/web-ui/tsconfig.json +0 -7
  729. package/tests/attended-results-scenarios.ts +0 -648
  730. package/tests/attended-results.test.ts +0 -39
  731. package/tests/cli-command-option-parity.test.ts +0 -798
  732. package/tests/debug-extension-harness.test.ts +0 -466
  733. package/tests/extension-registration.test.ts +0 -6785
  734. package/tests/fixtures/fixture_c.c +0 -361
  735. package/tests/fixtures/fixture_cpp.cpp +0 -407
  736. package/tests/fixtures/fixture_csharp.cs +0 -411
  737. package/tests/fixtures/fixture_elixir.ex +0 -409
  738. package/tests/fixtures/fixture_go.go +0 -341
  739. package/tests/fixtures/fixture_haskell.hs +0 -250
  740. package/tests/fixtures/fixture_java.java +0 -430
  741. package/tests/fixtures/fixture_javascript.js +0 -383
  742. package/tests/fixtures/fixture_kotlin.kt +0 -451
  743. package/tests/fixtures/fixture_lua.lua +0 -276
  744. package/tests/fixtures/fixture_perl.pl +0 -310
  745. package/tests/fixtures/fixture_php.php +0 -433
  746. package/tests/fixtures/fixture_python.py +0 -502
  747. package/tests/fixtures/fixture_ruby.rb +0 -345
  748. package/tests/fixtures/fixture_rust.rs +0 -380
  749. package/tests/fixtures/fixture_scala.scala +0 -398
  750. package/tests/fixtures/fixture_shell.sh +0 -276
  751. package/tests/fixtures/fixture_swift.swift +0 -397
  752. package/tests/fixtures/fixture_typescript.ts +0 -434
  753. package/tests/fixtures/fixture_zig.zig +0 -295
  754. package/tests/fixtures_attended_results/project/compress-line-numbers.json +0 -5
  755. package/tests/fixtures_attended_results/project/compress.json +0 -5
  756. package/tests/fixtures_attended_results/project/enable-static-check-invalid-command.json +0 -5
  757. package/tests/fixtures_attended_results/project/enable-static-check-valid.json +0 -5
  758. package/tests/fixtures_attended_results/project/files-static-check.json +0 -5
  759. package/tests/fixtures_attended_results/project/find-line-numbers.json +0 -5
  760. package/tests/fixtures_attended_results/project/find.json +0 -5
  761. package/tests/fixtures_attended_results/project/get-base-path.json +0 -5
  762. package/tests/fixtures_attended_results/project/git-check-clean.json +0 -5
  763. package/tests/fixtures_attended_results/project/git-check-dirty.json +0 -5
  764. package/tests/fixtures_attended_results/project/git-path.json +0 -5
  765. package/tests/fixtures_attended_results/project/git-wt-create-invalid.json +0 -5
  766. package/tests/fixtures_attended_results/project/git-wt-create-valid.json +0 -5
  767. package/tests/fixtures_attended_results/project/git-wt-delete-nonexistent.json +0 -5
  768. package/tests/fixtures_attended_results/project/git-wt-delete-valid.json +0 -5
  769. package/tests/fixtures_attended_results/project/git-wt-name.json +0 -5
  770. package/tests/fixtures_attended_results/project/static-check.json +0 -5
  771. package/tests/fixtures_attended_results/project/summarize.json +0 -5
  772. package/tests/fixtures_attended_results/project/tokens.json +0 -5
  773. package/tests/fixtures_attended_results/standalone/files-compress/fixture_c.c.json +0 -5
  774. package/tests/fixtures_attended_results/standalone/files-compress/fixture_cpp.cpp.json +0 -5
  775. package/tests/fixtures_attended_results/standalone/files-compress/fixture_csharp.cs.json +0 -5
  776. package/tests/fixtures_attended_results/standalone/files-compress/fixture_elixir.ex.json +0 -5
  777. package/tests/fixtures_attended_results/standalone/files-compress/fixture_go.go.json +0 -5
  778. package/tests/fixtures_attended_results/standalone/files-compress/fixture_haskell.hs.json +0 -5
  779. package/tests/fixtures_attended_results/standalone/files-compress/fixture_java.java.json +0 -5
  780. package/tests/fixtures_attended_results/standalone/files-compress/fixture_javascript.js.json +0 -5
  781. package/tests/fixtures_attended_results/standalone/files-compress/fixture_kotlin.kt.json +0 -5
  782. package/tests/fixtures_attended_results/standalone/files-compress/fixture_lua.lua.json +0 -5
  783. package/tests/fixtures_attended_results/standalone/files-compress/fixture_perl.pl.json +0 -5
  784. package/tests/fixtures_attended_results/standalone/files-compress/fixture_php.php.json +0 -5
  785. package/tests/fixtures_attended_results/standalone/files-compress/fixture_python.py.json +0 -5
  786. package/tests/fixtures_attended_results/standalone/files-compress/fixture_ruby.rb.json +0 -5
  787. package/tests/fixtures_attended_results/standalone/files-compress/fixture_rust.rs.json +0 -5
  788. package/tests/fixtures_attended_results/standalone/files-compress/fixture_scala.scala.json +0 -5
  789. package/tests/fixtures_attended_results/standalone/files-compress/fixture_shell.sh.json +0 -5
  790. package/tests/fixtures_attended_results/standalone/files-compress/fixture_swift.swift.json +0 -5
  791. package/tests/fixtures_attended_results/standalone/files-compress/fixture_typescript.ts.json +0 -5
  792. package/tests/fixtures_attended_results/standalone/files-compress/fixture_zig.zig.json +0 -5
  793. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_c.c.json +0 -5
  794. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_cpp.cpp.json +0 -5
  795. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_csharp.cs.json +0 -5
  796. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_elixir.ex.json +0 -5
  797. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_go.go.json +0 -5
  798. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_haskell.hs.json +0 -5
  799. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_java.java.json +0 -5
  800. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_javascript.js.json +0 -5
  801. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_kotlin.kt.json +0 -5
  802. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_lua.lua.json +0 -5
  803. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_perl.pl.json +0 -5
  804. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_php.php.json +0 -5
  805. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_python.py.json +0 -5
  806. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_ruby.rb.json +0 -5
  807. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_rust.rs.json +0 -5
  808. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_scala.scala.json +0 -5
  809. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_shell.sh.json +0 -5
  810. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_swift.swift.json +0 -5
  811. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_typescript.ts.json +0 -5
  812. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_zig.zig.json +0 -5
  813. package/tests/fixtures_attended_results/standalone/files-find/fixture_c.c.json +0 -5
  814. package/tests/fixtures_attended_results/standalone/files-find/fixture_cpp.cpp.json +0 -5
  815. package/tests/fixtures_attended_results/standalone/files-find/fixture_csharp.cs.json +0 -5
  816. package/tests/fixtures_attended_results/standalone/files-find/fixture_elixir.ex.json +0 -5
  817. package/tests/fixtures_attended_results/standalone/files-find/fixture_go.go.json +0 -5
  818. package/tests/fixtures_attended_results/standalone/files-find/fixture_haskell.hs.json +0 -5
  819. package/tests/fixtures_attended_results/standalone/files-find/fixture_java.java.json +0 -5
  820. package/tests/fixtures_attended_results/standalone/files-find/fixture_javascript.js.json +0 -5
  821. package/tests/fixtures_attended_results/standalone/files-find/fixture_kotlin.kt.json +0 -5
  822. package/tests/fixtures_attended_results/standalone/files-find/fixture_lua.lua.json +0 -5
  823. package/tests/fixtures_attended_results/standalone/files-find/fixture_perl.pl.json +0 -5
  824. package/tests/fixtures_attended_results/standalone/files-find/fixture_php.php.json +0 -5
  825. package/tests/fixtures_attended_results/standalone/files-find/fixture_python.py.json +0 -5
  826. package/tests/fixtures_attended_results/standalone/files-find/fixture_ruby.rb.json +0 -5
  827. package/tests/fixtures_attended_results/standalone/files-find/fixture_rust.rs.json +0 -5
  828. package/tests/fixtures_attended_results/standalone/files-find/fixture_scala.scala.json +0 -5
  829. package/tests/fixtures_attended_results/standalone/files-find/fixture_shell.sh.json +0 -5
  830. package/tests/fixtures_attended_results/standalone/files-find/fixture_swift.swift.json +0 -5
  831. package/tests/fixtures_attended_results/standalone/files-find/fixture_typescript.ts.json +0 -5
  832. package/tests/fixtures_attended_results/standalone/files-find/fixture_zig.zig.json +0 -5
  833. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_c.c.json +0 -5
  834. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_cpp.cpp.json +0 -5
  835. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_csharp.cs.json +0 -5
  836. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_elixir.ex.json +0 -5
  837. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_go.go.json +0 -5
  838. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_haskell.hs.json +0 -5
  839. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_java.java.json +0 -5
  840. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_javascript.js.json +0 -5
  841. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_kotlin.kt.json +0 -5
  842. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_lua.lua.json +0 -5
  843. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_perl.pl.json +0 -5
  844. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_php.php.json +0 -5
  845. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_python.py.json +0 -5
  846. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_ruby.rb.json +0 -5
  847. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_rust.rs.json +0 -5
  848. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_scala.scala.json +0 -5
  849. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_shell.sh.json +0 -5
  850. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_swift.swift.json +0 -5
  851. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_typescript.ts.json +0 -5
  852. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_zig.zig.json +0 -5
  853. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_c.c.json +0 -5
  854. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_cpp.cpp.json +0 -5
  855. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_csharp.cs.json +0 -5
  856. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_elixir.ex.json +0 -5
  857. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_go.go.json +0 -5
  858. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_haskell.hs.json +0 -5
  859. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_java.java.json +0 -5
  860. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_javascript.js.json +0 -5
  861. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_kotlin.kt.json +0 -5
  862. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_lua.lua.json +0 -5
  863. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_perl.pl.json +0 -5
  864. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_php.php.json +0 -5
  865. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_python.py.json +0 -5
  866. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_ruby.rb.json +0 -5
  867. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_rust.rs.json +0 -5
  868. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_scala.scala.json +0 -5
  869. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_shell.sh.json +0 -5
  870. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_swift.swift.json +0 -5
  871. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_typescript.ts.json +0 -5
  872. package/tests/fixtures_attended_results/standalone/files-summarize/fixture_zig.zig.json +0 -5
  873. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_c.c.json +0 -5
  874. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_cpp.cpp.json +0 -5
  875. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_csharp.cs.json +0 -5
  876. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_elixir.ex.json +0 -5
  877. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_go.go.json +0 -5
  878. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_haskell.hs.json +0 -5
  879. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_java.java.json +0 -5
  880. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_javascript.js.json +0 -5
  881. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_kotlin.kt.json +0 -5
  882. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_lua.lua.json +0 -5
  883. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_perl.pl.json +0 -5
  884. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_php.php.json +0 -5
  885. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_python.py.json +0 -5
  886. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_ruby.rb.json +0 -5
  887. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_rust.rs.json +0 -5
  888. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_scala.scala.json +0 -5
  889. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_shell.sh.json +0 -5
  890. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_swift.swift.json +0 -5
  891. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_typescript.ts.json +0 -5
  892. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_zig.zig.json +0 -5
  893. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_c.c.json +0 -5
  894. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_cpp.cpp.json +0 -5
  895. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_csharp.cs.json +0 -5
  896. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_elixir.ex.json +0 -5
  897. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_go.go.json +0 -5
  898. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_haskell.hs.json +0 -5
  899. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_java.java.json +0 -5
  900. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_javascript.js.json +0 -5
  901. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_kotlin.kt.json +0 -5
  902. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_lua.lua.json +0 -5
  903. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_perl.pl.json +0 -5
  904. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_php.php.json +0 -5
  905. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_python.py.json +0 -5
  906. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_ruby.rb.json +0 -5
  907. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_rust.rs.json +0 -5
  908. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_scala.scala.json +0 -5
  909. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_shell.sh.json +0 -5
  910. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_swift.swift.json +0 -5
  911. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_typescript.ts.json +0 -5
  912. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_zig.zig.json +0 -5
  913. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_c.c.json +0 -5
  914. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_cpp.cpp.json +0 -5
  915. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_csharp.cs.json +0 -5
  916. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_elixir.ex.json +0 -5
  917. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_go.go.json +0 -5
  918. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_haskell.hs.json +0 -5
  919. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_java.java.json +0 -5
  920. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_javascript.js.json +0 -5
  921. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_kotlin.kt.json +0 -5
  922. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_lua.lua.json +0 -5
  923. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_perl.pl.json +0 -5
  924. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_php.php.json +0 -5
  925. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_python.py.json +0 -5
  926. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_ruby.rb.json +0 -5
  927. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_rust.rs.json +0 -5
  928. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_scala.scala.json +0 -5
  929. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_shell.sh.json +0 -5
  930. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_swift.swift.json +0 -5
  931. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_typescript.ts.json +0 -5
  932. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_zig.zig.json +0 -5
  933. package/tests/helpers.ts +0 -236
  934. package/tests/oracle-project.test.ts +0 -67
  935. package/tests/oracle-standalone.test.ts +0 -68
  936. package/tests/prompt-command-summary.test.ts +0 -36
  937. package/tests/prompt-rendering.test.ts +0 -103
  938. package/tests/python_oracle_stubs/tiktoken.py +0 -76
  939. package/tests/release-workflow.test.ts +0 -195
  940. package/tests/static-check-bundled.test.ts +0 -332
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "@@@ tests/fixtures/fixture_zig.zig | zig\n\n### IMPORT: `std`\n> Lines: 7-7\n```\n7: const std = @import(\"std\");\n```\n\n### IMPORT: `mem`\n> Lines: 8-8\n```\n8: const mem = @import(\"std\").mem;\n```\n\n### CONSTANT: `Allocator`\n> Signature: `const Allocator = std.mem.Allocator`\n> Lines: 9-9\n```\n9: const Allocator = std.mem.Allocator;\n```\n\n### FUNCTION: `main`\n> Signature: `pub fn main() void`\n> Lines: 14-16\n```\n14: pub fn main() void {\n15: std.debug.print(\"Hello\\n\", .{});\n16: }\n```\n\n### FUNCTION: `add`\n> Signature: `pub fn add(a: i32, b: i32) i32`\n> Lines: 22-24\n- @param a First operand.\n- @param b Second operand.\n- @return Sum of a and b.\n```\n22: pub fn add(a: i32, b: i32) i32 {\n23: return a + b;\n24: }\n```\n\n### FUNCTION: `safeDivide`\n> Signature: `pub fn safeDivide(numerator: i32, denominator: i32) !i32`\n> Lines: 30-35\n- @param numerator The dividend.\n- @param denominator The divisor; must not be zero.\n- @return Quotient or error.DivisionByZero.\n```\n30: pub fn safeDivide(numerator: i32, denominator: i32) !i32 {\n31: if (denominator == 0) {\n32: return error.DivisionByZero;\n33: }\n34: return @divTrunc(numerator, denominator);\n35: }\n```\n\n### FUNCTION: `max`\n> Signature: `pub fn max(comptime T: type, a: T, b: T) T`\n> Lines: 42-44\n- @param T The element type (comptime resolved).\n- @param a First value.\n- @param b Second value.\n- @return The larger of a and b.\n```\n42: pub fn max(comptime T: type, a: T, b: T) T {\n43: return if (a > b) a else b;\n44: }\n```\n\n### FUNCTION: `indexOf`\n> Signature: `pub fn indexOf(comptime T: type, haystack: []const T, needle: T) ?usize`\n> Lines: 51-59\n- @param T Element type.\n- @param haystack Slice to search.\n- @param needle Value to find.\n- @return Index of needle or null if not found.\n```\n51: pub fn indexOf(comptime T: type, haystack: []const T, needle: T) ?usize {\n52: for (haystack, 0..) |item, i| {\n53: if (item == needle) {\n54: return i;\n55: }\n56: }\n58: return null;\n59: }\n```\n\n### FUNCTION: `comptimeConcat`\n> Signature: `pub fn comptimeConcat(comptime a: []const u8, comptime b: []const u8) []const u8`\n> Lines: 65-67\n- @param a First string literal.\n- @param b Second string literal.\n- @return Concatenated string at compile time.\n```\n65: pub fn comptimeConcat(comptime a: []const u8, comptime b: []const u8) []const u8 {\n66: return a ++ b;\n67: }\n```\n\n### FUNCTION: `createBuffer`\n> Signature: `pub fn createBuffer(allocator: Allocator) ![]u8`\n> Lines: 72-78\n- @param allocator Memory allocator for buffer creation.\n- @return Allocated buffer or error.\n```\n72: pub fn createBuffer(allocator: Allocator) ![]u8 {\n73: const buf = try allocator.alloc(u8, 1024);\n74: errdefer allocator.free(buf);\n76: @memset(buf, 0);\n77: return buf;\n78: }\n```\n\n### CONSTANT: `buf`\n> Signature: `const buf = try allocator.alloc(u8, 1024)`\n> Lines: 73-73\n```\n73: const buf = try allocator.alloc(u8, 1024);\n```\n\n### VARIABLE: `total`\n> Signature: `var total: f32 = 0.0`\n> Lines: 84-84\n- @param values Slice of floats to sum.\n- @return Sum of all elements.\n```\n84: var total: f32 = 0.0;\n```\n\n### FUNCTION: `doubleValue`\n> Signature: `export fn doubleValue(x: i32) i32`\n> Lines: 94-96\n- @param x Value to double.\n- @return Input multiplied by two.\n```\n94: export fn doubleValue(x: i32) i32 {\n95: return x * 2;\n96: }\n```\n\n### STRUCT: `Point`\n> Signature: `const Point = struct`\n> Lines: 102-121\n- @brief Basic coordinate pair for geometric computations.\n```\n102: const Point = struct {\n103: x: f64,\n104: y: f64,\n110: pub fn distSquared(self: Point, other: Point) f64 {\n111: const dx = self.x - other.x;\n112: const dy = self.y - other.y;\n113: return dx * dx + dy * dy;\n114: }\n118: pub fn origin() Point {\n119: return .{ .x = 0.0, .y = 0.0 };\n120: }\n121: };\n```\n\n### FUNCTION: `distSquared`\n> Signature: `pub fn distSquared(self: Point, other: Point) f64`\n> Lines: 110-114\n- @param self This point.\n- @param other Target point.\n- @return Distance squared (avoids sqrt).\n```\n110: pub fn distSquared(self: Point, other: Point) f64 {\n111: const dx = self.x - other.x;\n112: const dy = self.y - other.y;\n113: return dx * dx + dy * dy;\n114: }\n```\n\n### CONSTANT: `dx`\n> Signature: `const dx = self.x - other.x`\n> Lines: 111-111\n```\n111: const dx = self.x - other.x;\n```\n\n### CONSTANT: `dy`\n> Signature: `const dy = self.y - other.y`\n> Lines: 112-112\n```\n112: const dy = self.y - other.y;\n```\n\n### FUNCTION: `origin`\n> Signature: `pub fn origin() Point`\n> Lines: 118-120\n- @return A zero-initialized Point.\n```\n118: pub fn origin() Point {\n119: return .{ .x = 0.0, .y = 0.0 };\n120: }\n```\n\n### STRUCT: `PackedFlags`\n> Signature: `const PackedFlags = packed struct`\n> Lines: 125-130\n- @brief Tests parser handling of packed layout specifier.\n```\n125: const PackedFlags = packed struct {\n126: readable: bool,\n127: writable: bool,\n128: executable: bool,\n129: reserved: u5,\n130: };\n```\n\n### STRUCT: `Config`\n> Signature: `const Config = struct`\n> Lines: 133-144\n```\n133: const Config = struct {\n134: name: []const u8 = \"default\",\n135: max_retries: u32 = 3,\n136: timeout_ms: u64 = 5000,\n137: debug: bool = false,\n141: pub fn testing() Config {\n142: return .{ .debug = true, .name = \"test\" };\n143: }\n144: };\n```\n\n### FUNCTION: `testing`\n> Signature: `pub fn testing() Config`\n> Lines: 141-143\n- @return Config with debug=true.\n```\n141: pub fn testing() Config {\n142: return .{ .debug = true, .name = \"test\" };\n143: }\n```\n\n### ENUM: `Color`\n> Signature: `const Color = enum`\n> Lines: 149-164\n```\n149: const Color = enum {\n150: red,\n151: green,\n152: blue,\n157: pub fn toRgb(self: Color) u32 {\n158: return switch (self) {\n159: .red => 0xFF0000,\n160: .green => 0x00FF00,\n161: .blue => 0x0000FF,\n162: };\n163: }\n164: };\n```\n\n### FUNCTION: `toRgb`\n> Signature: `pub fn toRgb(self: Color) u32`\n> Lines: 157-163\n- @param self The color variant.\n- @return 24-bit RGB integer.\n```\n157: pub fn toRgb(self: Color) u32 {\n158: return switch (self) {\n159: .red => 0xFF0000,\n160: .green => 0x00FF00,\n161: .blue => 0x0000FF,\n162: };\n163: }\n```\n\n### ENUM: `Status`\n> Signature: `const Status = enum(u8)`\n> Lines: 167-172\n```\n167: const Status = enum(u8) {\n168: idle = 0,\n169: running = 1,\n170: error = 2,\n171: done = 3,\n172: };\n```\n\n### UNION: `Result`\n> Signature: `const Result = union(enum)`\n> Lines: 177-187\n```\n177: const Result = union(enum) {\n178: ok: i32,\n179: err: []const u8,\n184: pub fn isOk(self: Result) bool {\n185: return self == .ok;\n186: }\n187: };\n```\n\n### FUNCTION: `isOk`\n> Signature: `pub fn isOk(self: Result) bool`\n> Lines: 184-186\n- @param self The result to inspect.\n- @return True if variant is ok.\n```\n184: pub fn isOk(self: Result) bool {\n185: return self == .ok;\n186: }\n```\n\n### UNION: `ExternData`\n> Signature: `const ExternData = extern union`\n> Lines: 190-194\n```\n190: const ExternData = extern union {\n191: int_val: i32,\n192: float_val: f32,\n193: bytes: [4]u8,\n194: };\n```\n\n### CONSTANT: `MAX_SIZE`\n> Signature: `const MAX_SIZE: usize = 1024`\n> Lines: 199-199\n- @brief Maximum allocation size in bytes.\n```\n199: const MAX_SIZE: usize = 1024;\n```\n\n### VARIABLE: `global_state`\n> Signature: `pub var global_state: i32 = 0`\n> Lines: 202-202\n- @brief Global mutable state counter.\n```\n202: pub var global_state: i32 = 0;\n```\n\n### CONSTANT: `MAGIC_NUMBER`\n> Signature: `const MAGIC_NUMBER: u32 = comptime blk:`\n> Lines: 205-205\n- @brief Compile-time computed constant.\n```\n205: const MAGIC_NUMBER: u32 = comptime blk: {\n```\n\n### VARIABLE: `x`\n> Signature: `var x: u32 = 1`\n> Lines: 206-206\n```\n206: var x: u32 = 1;\n```\n\n### CONSTANT: `ParseError`\n> Signature: `const ParseError = error`\n> Lines: 214-214\n```\n214: const ParseError = error{\n```\n\n### CONSTANT: `result`\n> Signature: `const result = add(2, 3)`\n> Lines: 225-225\n```\n225: const result = add(2, 3);\n```\n\n### CONSTANT: `result`\n> Signature: `const result = safeDivide(10, 0)`\n> Lines: 231-231\n```\n231: const result = safeDivide(10, 0);\n```\n\n### CONSTANT: `items`\n> Signature: `const items = [_]i32{ 1, 2, 3, 4, 5 }`\n> Lines: 237-237\n```\n237: const items = [_]i32{ 1, 2, 3, 4, 5 };\n```\n\n### CONSTANT: `idx`\n> Signature: `const idx = indexOf(i32, &items, 3)`\n> Lines: 238-238\n```\n238: const idx = indexOf(i32, &items, 3);\n```\n\n### IMPORT: `io`\n> Lines: 243-243\n```\n243: const io = @import(\"std\");\n```\n\n### IMPORT: `fs`\n> Lines: 244-244\n```\n244: const fs = @import(\"std\");\n```\n\n### IMPORT: `mem`\n> Lines: 245-245\n```\n245: const mem = @import(\"std\");\n```\n\n### IMPORT: `math`\n> Lines: 246-246\n```\n246: const math = @import(\"std\");\n```\n\n### IMPORT: `json`\n> Lines: 247-247\n```\n247: const json = @import(\"std\");\n```\n\n### ENUM: `Mode`\n> Signature: `const Mode = enum { fast, safe }`\n> Lines: 248-248\n```\n248: const Mode = enum { fast, safe };\n```\n\n### ENUM: `Phase`\n> Signature: `const Phase = enum { init, done }`\n> Lines: 249-249\n```\n249: const Phase = enum { init, done };\n```\n\n### ENUM: `Signal`\n> Signature: `const Signal = enum { on, off }`\n> Lines: 250-250\n```\n250: const Signal = enum { on, off };\n```\n\n### STRUCT: `Packet`\n> Signature: `const Packet = struct { id: i32 }`\n> Lines: 251-251\n```\n251: const Packet = struct { id: i32 };\n```\n\n### STRUCT: `Limits`\n> Signature: `const Limits = struct { max: i32 }`\n> Lines: 252-252\n```\n252: const Limits = struct { max: i32 };\n```\n\n### UNION: `Variant`\n> Signature: `const Variant = union { i: i32, f: f32 }`\n> Lines: 253-253\n```\n253: const Variant = union { i: i32, f: f32 };\n```\n\n### UNION: `Payload`\n> Signature: `const Payload = extern union { a: i32, b: i32 }`\n> Lines: 254-254\n```\n254: const Payload = extern union { a: i32, b: i32 };\n```\n\n### UNION: `Message`\n> Signature: `const Message = union { txt: [4]u8, len: u32 }`\n> Lines: 255-255\n```\n255: const Message = union { txt: [4]u8, len: u32 };\n```\n\n### VARIABLE: `retries`\n> Signature: `var retries: i32 = 0`\n> Lines: 256-256\n```\n256: var retries: i32 = 0;\n```\n\n### VARIABLE: `pointer`\n> Signature: `var pointer: usize = 0`\n> Lines: 257-257\n```\n257: var pointer: usize = 0;\n```\n\n### FUNCTION: `reqCoverZig1`\n> Signature: `fn reqCoverZig1(value: i32) i32 { return value + 1; }`\n> Lines: 265-265\n- @brief Coverage helper construct 1.\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n- @param value Input value for helper construct 1.\n- @return Output value for helper construct 1.\n```\n265: fn reqCoverZig1(value: i32) i32 { return value + 1; }\n```\n\n### FUNCTION: `reqCoverZig2`\n> Signature: `fn reqCoverZig2(value: i32) i32 { return value + 2; }`\n> Lines: 272-272\n- @brief Coverage helper construct 2.\n- @details Provides deterministic fixture-level Doxygen coverage block 2.\n- @param value Input value for helper construct 2.\n- @return Output value for helper construct 2.\n```\n272: fn reqCoverZig2(value: i32) i32 { return value + 2; }\n```\n\n### FUNCTION: `reqCoverZig3`\n> Signature: `fn reqCoverZig3(value: i32) i32 { return value + 3; }`\n> Lines: 279-279\n- @brief Coverage helper construct 3.\n- @details Provides deterministic fixture-level Doxygen coverage block 3.\n- @param value Input value for helper construct 3.\n- @return Output value for helper construct 3.\n```\n279: fn reqCoverZig3(value: i32) i32 { return value + 3; }\n```\n\n### FUNCTION: `reqCoverZig4`\n> Signature: `fn reqCoverZig4(value: i32) i32 { return value + 4; }`\n> Lines: 286-286\n- @brief Coverage helper construct 4.\n- @details Provides deterministic fixture-level Doxygen coverage block 4.\n- @param value Input value for helper construct 4.\n- @return Output value for helper construct 4.\n```\n286: fn reqCoverZig4(value: i32) i32 { return value + 4; }\n```\n\n### FUNCTION: `reqCoverZig5`\n> Signature: `fn reqCoverZig5(value: i32) i32 { return value + 5; }`\n> Lines: 293-293\n- @brief Coverage helper construct 5.\n- @details Provides deterministic fixture-level Doxygen coverage block 5.\n- @param value Input value for helper construct 5.\n- @return Output value for helper construct 5.\n```\n293: fn reqCoverZig5(value: i32) i32 { return value + 5; }\n```\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_c.c | C | 361L | 60 symbols | 5 imports | 79 comments\n> Path: `tests/fixtures/fixture_c.c`\n- @brief Comprehensive C language test fixture for parser validation.\n- @details Covers structs, unions, enums, function pointers, inline functions,\npreprocessor directives, bitfields, variadic functions, and complex\ntypedef chains that stress-test regex-based parsing.\n\n## Imports\n```\n#include \"myheader.h\"\n#include <stdarg.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n```\n\n## Definitions\n\n- macro `#define MAX_SIZE 100` (L22)\n- macro `#define CLAMP(val, lo, hi) ((val) < (lo) ? (lo) : ((val) > (hi) ? (hi) : (val)))` (L31)\n- @brief Constrain value between lower and upper bounds.\n- @param val Value to clamp.\n- @param lo Minimum allowed value.\n- @param hi Maximum allowed value.\n- macro `#define STRINGIFY(x) #x` (L34)\n- macro `#define CONCAT(a, b) a##b` (L40)\n- @brief Token-pasting macro joining two identifiers.\n- macro `#define LOG(fmt, ...) fprintf(stderr, fmt, ##__VA_ARGS__)` (L43)\n- macro `#define LOG(fmt, ...) ((void)0)` (L45)\n- typedef `typedef int my_int;` (L51)\n- typedef `typedef unsigned char byte_t;` (L54)\n### struct `struct Point` (L62-65)\n- @brief 2D point with integer coordinates.\n- @brief Horizontal coordinate.\n- @brief Vertical coordinate.\n\n### struct `struct PackedFlags` (L71-76)\n- @brief Bitfield struct testing parser handling of colon-separated widths.\n- @brief Read permission flag.\n- @brief Write permission flag.\n- @brief Execute permission flag.\n\n### struct `struct Node` (L82-89)\n- @brief Self-referential linked-list node with embedded anonymous union.\n- @brief Payload can hold either an integer or float value.\n- var `int i_val` (L85)\n - @brief Payload can hold either an integer or float value. */\n- var `float f_val` (L86)\n\n### unk `union Data` (L97-101)\n- @brief Discriminated union for multi-type storage.\n- @brief Integer interpretation.\n- @brief Float interpretation.\n- @brief Fixed-size string buffer.\n\n### enum `enum Color` (L109-113)\n- @brief Primary color identifiers for rendering pipeline.\n- @brief Red channel.\n- @brief Green channel.\n- @brief Blue channel.\n\n### fn `typedef int (*comparator_fn)(const void *a, const void *b)` (L124-142)\n- @brief Function pointer type for generic comparison callbacks.\n- @brief Unary transform callback operating on a single integer.\n- @param a Pointer to first element.\n- @param b Pointer to second element.\n- @return Negative if a<b, zero if equal, positive if a>b.\n\n### fn `typedef int (*transform_fn)(int value)` (L130-142)\n- @brief Unary transform callback operating on a single integer.\n\n- var `static int counter = 0;` (L147)\n- @brief Module-scoped invocation counter, not visible externally. */\n- var `static char error_buffer[256] = {0};` (L150)\n- @brief Global error message buffer shared across translation unit. */\n- fn `static inline int min_val(int a, int b) { return a < b ? a : b; }` (L160)\n- @brief Compute the minimum of two integers.\n- @param a First integer.\n- @param b Second integer.\n- @return The smaller of a and b.\n### fn `void greet(const char *name)` (L168-174)\n- @brief Print a greeting message to stdout.\n- @param name The recipient name; must not be NULL.\n\n### fn `int main(int argc, char **argv)` (L182-190)\n- @brief Application entry point.\n- @param argc Argument count from the OS.\n- @param argv Argument vector; argv[0] is the program name.\n- @return Exit code: 0 on success, 1 on error.\n\n### fn `int sum_ints(int count, ...)` (L200-210)\n- @brief Compute the sum of a variable number of integers.\n- @param count Number of integer arguments that follow.\n- @param ... Variable integer arguments to sum.\n- @return The cumulative sum of all provided integers.\n\n- var `int total = 0;` (L203)\n### fn `void apply_transform(int *arr, size_t len, transform_fn fn)` (L220-225)\n- @brief Apply a transform function to every element in an array.\n- @param arr Array of integers to transform in-place.\n- @param len Number of elements in arr.\n- @param fn Transform callback applied to each element.\n\n### fn `unsigned long factorial(unsigned int n)` (L234-241)\n- @brief Compute factorial recursively.\n- @param n Non-negative integer input.\n- @return n! or 1 when n <= 1.\n\n### fn `static void fast_copy(void *restrict dest, const void *restrict src, size_t n)` (L251-253)\n- @brief Copy bytes between non-overlapping buffers.\n- @param dest Destination buffer (restrict-qualified).\n- @param src Source buffer (restrict-qualified).\n- @param n Number of bytes to copy.\n\n- fn `static int read_volatile(volatile int *reg) { return *reg; }` (L260)\n- @brief Read a hardware register marked volatile.\n- @param reg Pointer to the memory-mapped register.\n- @return The current 32-bit register value.\n### fn `int sum_fixed(int arr[static 10])` (L269-275)\n- @brief Sum elements of a fixed-size array.\n- @param arr Array with at least 10 elements (compiler hint via static 10).\n- @return The sum of the first 10 elements.\n\n- var `int s = 0;` (L270)\n### struct `struct Vector2` (L278-281)\n- var `int x` (L279)\n- var `int y` (L280)\n\n### struct `struct Matrix2` (L282-285)\n- var `int a11` (L283)\n- var `int a22` (L284)\n\n- enum `enum StatusCode { STATUS_OK, STATUS_ERR, STATUS_UNKNOWN };` (L286)\n- enum `enum LevelCode { LEVEL_LOW, LEVEL_MEDIUM, LEVEL_HIGH };` (L287)\n- enum `enum ModeCode { MODE_A, MODE_B };` (L288)\n- enum `enum FlagCode { FLAG_ON, FLAG_OFF };` (L289)\n### unk `union NumberValue` (L290-293)\n\n- var `int i;` (L291)\n- var `float f;` (L292)\n### unk `union PtrValue` (L294-297)\n\n- var `long l;` (L296)\n### unk `union StateValue` (L298-301)\n\n- var `int s;` (L299)\n- var `char c;` (L300)\n### unk `union PairValue` (L302-305)\n\n- var `int x;` (L303)\n- var `int y;` (L304)\n- typedef `typedef long index_t;` (L306)\n- typedef `typedef float ratio_t;` (L307)\n### struct `typedef struct Point point_t` (L308-319)\n- typedef `typedef double score_t` (L309)\n- fn `int req_cover_c_1(int value) { return value + 1; }` (L319)\n - @brief Coverage helper construct 1.\n - @details Provides deterministic fixture-level Doxygen coverage block 1.\n - @param value Input value for helper construct 1.\n - @return Output value for helper construct 1.\n\n- fn `int req_cover_c_2(int value) { return value + 2; }` (L328)\n- @brief Coverage helper construct 2.\n- @details Provides deterministic fixture-level Doxygen coverage block 2.\n- @param value Input value for helper construct 2.\n- @return Output value for helper construct 2.\n- fn `int req_cover_c_3(int value) { return value + 3; }` (L337)\n- @brief Coverage helper construct 3.\n- @details Provides deterministic fixture-level Doxygen coverage block 3.\n- @param value Input value for helper construct 3.\n- @return Output value for helper construct 3.\n- fn `int req_cover_c_4(int value) { return value + 4; }` (L346)\n- @brief Coverage helper construct 4.\n- @details Provides deterministic fixture-level Doxygen coverage block 4.\n- @param value Input value for helper construct 4.\n- @return Output value for helper construct 4.\n- fn `int req_cover_c_5(int value) { return value + 5; }` (L355)\n- @brief Coverage helper construct 5.\n- @details Provides deterministic fixture-level Doxygen coverage block 5.\n- @param value Input value for helper construct 5.\n- @return Output value for helper construct 5.\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`MAX_SIZE`|macro||22||\n|`CLAMP`|macro||31||\n|`STRINGIFY`|macro||34||\n|`CONCAT`|macro||40||\n|`LOG`|macro||43||\n|`LOG`|macro||45||\n|`my_int`|typedef||51||\n|`byte_t`|typedef||54||\n|`Point`|struct||62-65|struct Point|\n|`PackedFlags`|struct||71-76|struct PackedFlags|\n|`Node`|struct||82-89|struct Node|\n|`Node.i_val`|var||85||\n|`Node.f_val`|var||86||\n|`Data`|unk||97-101||\n|`Color`|enum||109-113|enum Color|\n|`int`|fn||124-142|typedef int (*comparator_fn)(const void *a, const void *b)|\n|`int`|fn||130-142|typedef int (*transform_fn)(int value)|\n|`counter`|var||147||\n|`error_buffer`|var||150||\n|`min_val`|fn||160|static inline int min_val(int a, int b) { return a < b ? ...|\n|`greet`|fn||168-174|void greet(const char *name)|\n|`main`|fn||182-190|int main(int argc, char **argv)|\n|`sum_ints`|fn||200-210|int sum_ints(int count, ...)|\n|`total`|var||203||\n|`apply_transform`|fn||220-225|void apply_transform(int *arr, size_t len, transform_fn fn)|\n|`factorial`|fn||234-241|unsigned long factorial(unsigned int n)|\n|`fast_copy`|fn||251-253|static void fast_copy(void *restrict dest, const void *re...|\n|`read_volatile`|fn||260|static int read_volatile(volatile int *reg) { return *reg; }|\n|`sum_fixed`|fn||269-275|int sum_fixed(int arr[static 10])|\n|`s`|var||270||\n|`Vector2`|struct||278-281|struct Vector2|\n|`Vector2.x`|var||279||\n|`Vector2.y`|var||280||\n|`Matrix2`|struct||282-285|struct Matrix2|\n|`Matrix2.a11`|var||283||\n|`Matrix2.a22`|var||284||\n|`StatusCode`|enum||286|enum StatusCode { STATUS_OK, STATUS_ERR, STATUS_UNKNOWN }|\n|`LevelCode`|enum||287|enum LevelCode { LEVEL_LOW, LEVEL_MEDIUM, LEVEL_HIGH }|\n|`ModeCode`|enum||288|enum ModeCode { MODE_A, MODE_B }|\n|`FlagCode`|enum||289|enum FlagCode { FLAG_ON, FLAG_OFF }|\n|`NumberValue`|unk||290-293||\n|`i`|var||291||\n|`f`|var||292||\n|`PtrValue`|unk||294-297||\n|`l`|var||296||\n|`StateValue`|unk||298-301||\n|`s`|var||299||\n|`c`|var||300||\n|`PairValue`|unk||302-305||\n|`x`|var||303||\n|`y`|var||304||\n|`index_t`|typedef||306||\n|`ratio_t`|typedef||307||\n|`Point`|struct||308-319|typedef struct Point point_t|\n|`Point.score_t`|typedef||309||\n|`Point.req_cover_c_1`|fn||319|int req_cover_c_1(int value) { return value + 1; }|\n|`req_cover_c_2`|fn||328|int req_cover_c_2(int value) { return value + 2; }|\n|`req_cover_c_3`|fn||337|int req_cover_c_3(int value) { return value + 3; }|\n|`req_cover_c_4`|fn||346|int req_cover_c_4(int value) { return value + 4; }|\n|`req_cover_c_5`|fn||355|int req_cover_c_5(int value) { return value + 5; }|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_cpp.cpp | C++ | 407L | 54 symbols | 7 imports | 75 comments\n> Path: `tests/fixtures/fixture_cpp.cpp`\n- @brief Comprehensive C++ test fixture for parser stress-testing.\n- @details Covers templates, SFINAE, constexpr, lambdas, concepts, CRTP,\noperator overloading, move semantics, nested namespaces, and\nmodern C++20/23 constructs.\n\n## Imports\n```\n#include <concepts>\n#include <functional>\n#include <iostream>\n#include <memory>\n#include <optional>\n#include <string>\n#include <vector>\n```\n\n## Definitions\n\n- macro `#define VERSION 2` (L21)\n- macro `#define LIKELY(x) __builtin_expect(!!(x), 1)` (L24)\n### ns `namespace MyNS` (L28-299)\n- type `using StringVec = std::vector<std::string>` (L160)\n- type `typedef int my_int_t` (L163)\n- type `using Callback = std::function<void(int)>` (L166)\n- fn `virtual const char *type_name() const = 0` (L199-207)\n - @brief Identify the concrete type at runtime.\n - @return A non-owning string literal naming the type.\n- fn `if (pos == std::string::npos)` (L251-254)\n - @brief Parse a key=value string into its components.\n - @param input String in \"key=value\" format.\n - @return Pair of key and value; empty strings if malformed.\n- fn `void greet(std::string name) { std::cout << \"Hello, \" << name << \"\\n\"; }` (L264)\n - @brief Greet a person by name on stdout.\n - @param name The person's name to display.\n- fn `int main()` (L270-275)\n - @brief Program entry point.\n - @return 0 on success.\n- fn `greet(key)` (L273-284)\n\n### class `template <Printable T> class Container` (L55-110)\n- @brief Generic container with RAII semantics.\n@tparam T Element type; must satisfy Printable concept.\n- @brief Stored value of type T.\n- fn `explicit Container(T v) : value(std::move(v)) {}` (L63)\n - @brief Construct container with an initial value.\n - @param v The value to store.\n- fn `Container(const Container &other) = default` (L69-102)\n - @brief Copy constructor performs deep copy.\n - @brief Move constructor transfers ownership.\n - @param other Source container to copy from.\n - @param other Source container; left in valid but unspecified state.\n- fn `Container(Container &&other) noexcept = default` (L75-102)\n - @brief Move constructor transfers ownership.\n - @brief Copy assignment operator.\n - @param other Source container; left in valid but unspecified state.\n - @param other Source container.\n - @return Reference to this container.\n\n### struct `struct Point` (L118-142)\n- @brief 2D coordinate with constexpr arithmetic support.\n- @brief X coordinate.\n- @brief Y coordinate.\n- fn `constexpr double dist_sq(const Point &other) const` (L127-132)\n - @brief Compute Euclidean distance squared to another point.\n - @param other Target point.\n - @return Distance squared (avoids sqrt overhead).\n\n### enum `enum class Direction` (L150-155)\n- @brief Cardinal movement directions with strong typing.\n- @brief Move upward.\n- @brief Move downward.\n- @brief Move left.\n\n### class `template <typename Derived> class Cloneable` (L175-185)\n- @brief CRTP base providing a polymorphic clone method.\n@tparam Derived The concrete class inheriting this base.\n- @brief Create a heap-allocated copy of the derived object.\n- @return Unique pointer to the cloned instance.\n\n### class `class Base` (L193-201)\n- @brief Abstract base with a pure virtual method.\n- @brief Identify the concrete type at runtime.\n- @return A non-owning string literal naming the type.\n\n### class `class DerivedA : public virtual Base` : public virtual Base (L207-210)\n- @brief First concrete implementation of Base.\n- fn `const char *type_name() const override { return \"DerivedA\"; }` (L209)\n\n### class `class DerivedB : public virtual Base` : public virtual Base (L216-219)\n- @brief Second concrete implementation for diamond inheritance testing.\n- fn `const char *type_name() const override { return \"DerivedB\"; }` (L218)\n\n### class `class Diamond : public DerivedA, public DerivedB` : public DerivedA, public DerivedB (L225-228)\n- @brief Diamond inheritance: inherits from both DerivedA and DerivedB.\n- fn `const char *type_name() const override { return \"Diamond\"; }` (L227)\n\n### ns `namespace Inner::Detail` (L288-297)\n- @brief Internal helper formatting integers to strings.\n- @param v The integer to format.\n- @return Formatted string representation.\n- fn `inline std::string format_int(int v) { return std::to_string(v); }` (L295)\n - @brief Internal helper formatting integers to strings.\n - @param v The integer to format.\n - @return Formatted string representation.\n\n### fn `return std::to_string(value)` (L310-318)\n- @brief SFINAE-enabled serialize function for Numeric types.\n@tparam T Numeric type.\n- @brief Overload for string serialization (identity transform).\n- @param value The numeric value to serialize.\n- @param value The string to serialize.\n- @return String representation of the value.\n- @return The input string unchanged.\n\n- fn `inline std::string serialize(const std::string &value) { return value; }` (L318)\n- @brief Overload for string serialization (identity transform).\n- @param value The string to serialize.\n- @return The input string unchanged.\n### struct `struct Pixel` (L321-325)\n\n### struct `struct Size` (L326-329)\n\n### struct `struct Bounds` (L330-335)\n\n### struct `struct Marker` (L336-338)\n\n- enum `enum Mode { ModeA, ModeB };` (L339)\n- enum `enum State { StateIdle, StateBusy };` (L340)\n- enum `enum Grade { GradeA, GradeB };` (L341)\n- enum `enum Severity { SevLow, SevHigh };` (L342)\n### ns `namespace extns` (L343-345)\n- fn `inline int add_one(int v) { return v + 1; }` (L344)\n\n### ns `namespace ext_alpha` (L346-348)\n- fn `inline int ping() { return 1; }` (L347)\n\n### ns `namespace ext_beta` (L349-351)\n- fn `inline int pong() { return 2; }` (L350)\n\n- macro `#define FEATURE_ALPHA 1` (L352)\n- macro `#define FEATURE_BETA 2` (L353)\n- macro `#define FEATURE_GAMMA 3` (L354)\n- type `using NumberVec = std::vector<int>;` (L355)\n- type `typedef long LongId;` (L356)\n- fn `int req_cover_cpp_1(int value) { return value + 1; }` (L366)\n- @brief Coverage helper construct 1.\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n- @param value Input value for helper construct 1.\n- @return Output value for helper construct 1.\n- fn `int req_cover_cpp_2(int value) { return value + 2; }` (L375)\n- @brief Coverage helper construct 2.\n- @details Provides deterministic fixture-level Doxygen coverage block 2.\n- @param value Input value for helper construct 2.\n- @return Output value for helper construct 2.\n- fn `int req_cover_cpp_3(int value) { return value + 3; }` (L384)\n- @brief Coverage helper construct 3.\n- @details Provides deterministic fixture-level Doxygen coverage block 3.\n- @param value Input value for helper construct 3.\n- @return Output value for helper construct 3.\n- fn `int req_cover_cpp_4(int value) { return value + 4; }` (L393)\n- @brief Coverage helper construct 4.\n- @details Provides deterministic fixture-level Doxygen coverage block 4.\n- @param value Input value for helper construct 4.\n- @return Output value for helper construct 4.\n- fn `int req_cover_cpp_5(int value) { return value + 5; }` (L402)\n- @brief Coverage helper construct 5.\n- @details Provides deterministic fixture-level Doxygen coverage block 5.\n- @param value Input value for helper construct 5.\n- @return Output value for helper construct 5.\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`VERSION`|macro||21||\n|`LIKELY`|macro||24||\n|`MyNS`|ns||28-299||\n|`Container`|class||55-110|template <Printable T> class Container|\n|`Container.r`|fn||63|explicit Container(T v) : value(std::move(v)) {}|\n|`Container.r`|fn||69-102|Container(const Container &other) = default|\n|`Container.r`|fn||75-102|Container(Container &&other) noexcept = default|\n|`Point`|struct||118-142|struct Point|\n|`Point.dist_sq`|fn||127-132|constexpr double dist_sq(const Point &other) const|\n|`Direction`|enum||150-155|enum class Direction|\n|`MyNS.StringVec`|type||160||\n|`MyNS.int`|type||163||\n|`MyNS.Callback`|type||166||\n|`Cloneable`|class||175-185|template <typename Derived> class Cloneable|\n|`Base`|class||193-201|class Base|\n|`MyNS.type_name`|fn||199-207|virtual const char *type_name() const = 0|\n|`DerivedA`|class|pub|207-210|class DerivedA : public virtual Base|\n|`DerivedA.type_name`|fn||209|const char *type_name() const override { return \"DerivedA...|\n|`DerivedB`|class|pub|216-219|class DerivedB : public virtual Base|\n|`DerivedB.type_name`|fn||218|const char *type_name() const override { return \"DerivedB...|\n|`Diamond`|class|pub|225-228|class Diamond : public DerivedA, public DerivedB|\n|`Diamond.type_name`|fn||227|const char *type_name() const override { return \"Diamond\"; }|\n|`MyNS.f`|fn||251-254|if (pos == std::string::npos)|\n|`MyNS.greet`|fn||264|void greet(std::string name) { std::cout << \"Hello, \" << ...|\n|`MyNS.main`|fn||270-275|int main()|\n|`MyNS.t`|fn||273-284|greet(key)|\n|`Inner`|ns||288-297||\n|`Inner.format_int`|fn||295|inline std::string format_int(int v) { return std::to_str...|\n|`std::to_string`|fn||310-318|return std::to_string(value)|\n|`serialize`|fn||318|inline std::string serialize(const std::string &value) { ...|\n|`Pixel`|struct||321-325|struct Pixel|\n|`Size`|struct||326-329|struct Size|\n|`Bounds`|struct||330-335|struct Bounds|\n|`Marker`|struct||336-338|struct Marker|\n|`Mode`|enum||339|enum Mode { ModeA, ModeB }|\n|`State`|enum||340|enum State { StateIdle, StateBusy }|\n|`Grade`|enum||341|enum Grade { GradeA, GradeB }|\n|`Severity`|enum||342|enum Severity { SevLow, SevHigh }|\n|`extns`|ns||343-345||\n|`extns.add_one`|fn||344|inline int add_one(int v) { return v + 1; }|\n|`ext_alpha`|ns||346-348||\n|`ext_alpha.ping`|fn||347|inline int ping() { return 1; }|\n|`ext_beta`|ns||349-351||\n|`ext_beta.pong`|fn||350|inline int pong() { return 2; }|\n|`FEATURE_ALPHA`|macro||352||\n|`FEATURE_BETA`|macro||353||\n|`FEATURE_GAMMA`|macro||354||\n|`NumberVec`|type||355||\n|`long`|type||356||\n|`req_cover_cpp_1`|fn||366|int req_cover_cpp_1(int value) { return value + 1; }|\n|`req_cover_cpp_2`|fn||375|int req_cover_cpp_2(int value) { return value + 2; }|\n|`req_cover_cpp_3`|fn||384|int req_cover_cpp_3(int value) { return value + 3; }|\n|`req_cover_cpp_4`|fn||393|int req_cover_cpp_4(int value) { return value + 4; }|\n|`req_cover_cpp_5`|fn||402|int req_cover_cpp_5(int value) { return value + 5; }|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_csharp.cs | C# | 411L | 60 symbols | 5 imports | 199 comments\n> Path: `tests/fixtures/fixture_csharp.cs`\n\n## Imports\n```\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing System.Threading;\n```\n\n## Definitions\n\n### ns `namespace MyApp` (L15-314)\n- fn `public static int GetInstanceCount() => _instanceCount` (L171-179)\n- fn `Task<T?> FindByIdAsync(int id)` (L201-215)\n- fn `IAsyncEnumerable<T> GetAllAsync(CancellationToken token = default)` (L204-215)\n- fn `Task<bool> SaveAsync(T entity)` (L207-215)\n- fn `public record ConfigEntry(string Key, string Value)` (L258-292)\n\n### class `public class AuditableAttribute : Attribute` : Attribute `[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]` (L40-43)\n- prop `public int Level { get; set; } = 1` (L42)\n\n### class `public class Person : IComparable<Person>, IDisposable` : IComparable<Person>, IDisposable `[Auditable(Level = 2)]` (L53-172)\n- const `public const int MAX_AGE = 150` (L55)\n- prop `public string Name` (L68)\n- prop `public int Age { get; init; }` (L79)\n- prop `public Guid Id { get; } = Guid.NewGuid()` (L85)\n- fn `public Person(string name, int age)` (L97-101)\n - @brief Construct a new Person with name and age.\n - @details Initializes backing fields and updates instance counters.\n - @param name Display name (required).\n - @param age Age in years (must be 0..MAX_AGE).\n - @return Constructed Person instance.\n- fn `public void Greet()` (L106-110)\n- fn `public static async Task<string> FetchAsync(CancellationToken token = default)` (L117-120)\n - @brief Fetch person data asynchronously with cancellation support.\n - @details Waits asynchronously and returns a deterministic payload.\n - @details Supports cancellation through token propagation.\n - @param token Cancellation token for cooperative cancellation.\n - @return Formatted data string.\n- fn `public int CompareTo(Person? other)` (L127-130)\n - @brief Compare persons by age for sorting.\n - @details Implements IComparable ordering semantics.\n - @details Null values are ordered after non-null instances.\n - @param other Person to compare with.\n - @return Comparison result: negative, zero, or positive.\n- fn `public void Dispose()` (L135-139)\n- fn `public void Deconstruct(out string name, out int age)` (L162-165)\n\n### iface `public interface IGreeter` (L179-193)\n- fn `void SayHello(string name)` (L184-192)\n- fn `void SayGoodbye(string name)` (L190-192)\n\n### iface `public interface IRepository<T> where T : class, new()` (L199-208)\n\n### struct `public readonly struct Point` (L215-230)\n- prop `public double X { get; init; }` (L217)\n- prop `public double Y { get; init; }` (L219)\n\n### enum `public enum Color` `[Flags]` (L238-249)\n\n### class `public static class StringExtensions` (L272-292)\n- fn `public static string Truncate(this string str, int maxLength)` (L279-282)\n- fn `public static bool IsAscii(this string str)` (L289-291)\n\n### class `public class SortedCollection<T> where T : IComparable<T>` (L300-322)\n- fn `public void Add(T item)` (L307-312)\n- fn `public IEnumerable<T> Where(Func<T, bool> predicate)` (L319-321)\n\n### class `public static class PatternMatcher` (L329-347)\n- fn `public static string Describe(object? obj)` (L335-346)\n\n- ns `namespace MyApp.Services {}` (L352)\n- ns `namespace MyApp.Core {}` (L353)\n- ns `namespace MyApp.Data {}` (L354)\n- ns `namespace MyApp.Api {}` (L355)\n- iface `public interface ILogger {}` (L356)\n- iface `public interface IParser {}` (L357)\n- iface `public interface IRunner {}` (L358)\n- enum `public enum ModeCs { Fast, Safe }` (L359)\n- enum `public enum PhaseCs { Init, Done }` (L360)\n- enum `public enum StateCs { Open, Closed }` (L361)\n- enum `public enum SignalCs { On, Off }` (L362)\n- struct `public struct Size { public int W; public int H; }` (L363)\n- struct `public readonly struct Vector { public readonly int X; public readonly int Y; }` (L364)\n- struct `public struct Limits { public int Max; }` (L365)\n- struct `public struct Cursor { public int Index; }` (L366)\n- const `public const int MIN_AGE = 10;` (L368)\n- const `public const int RETRY_LIMIT = 3;` (L369)\n- const `public const int CACHE_SIZE = 128;` (L370)\n- const `public const int DEFAULT_PAGE = 1;` (L371)\n### class `public static class ReqCoverCsharp` (L374-410)\n- @brief Coverage helper construct 1.\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n- fn `public static int ReqCoverCsharp1(int value) { return value + 1; }` (L380)\n - @brief Coverage helper construct 1.\n - @details Provides deterministic fixture-level Doxygen coverage block 1.\n - @param value Input value for helper construct 1.\n - @return Output value for helper construct 1.\n- fn `public static int ReqCoverCsharp2(int value) { return value + 2; }` (L387)\n - @brief Coverage helper construct 2.\n - @details Provides deterministic fixture-level Doxygen coverage block 2.\n - @param value Input value for helper construct 2.\n - @return Output value for helper construct 2.\n- fn `public static int ReqCoverCsharp3(int value) { return value + 3; }` (L394)\n - @brief Coverage helper construct 3.\n - @details Provides deterministic fixture-level Doxygen coverage block 3.\n - @param value Input value for helper construct 3.\n - @return Output value for helper construct 3.\n- fn `public static int ReqCoverCsharp4(int value) { return value + 4; }` (L401)\n - @brief Coverage helper construct 4.\n - @details Provides deterministic fixture-level Doxygen coverage block 4.\n - @param value Input value for helper construct 4.\n - @return Output value for helper construct 4.\n- fn `public static int ReqCoverCsharp5(int value) { return value + 5; }` (L408)\n - @brief Coverage helper construct 5.\n - @details Provides deterministic fixture-level Doxygen coverage block 5.\n - @param value Input value for helper construct 5.\n - @return Output value for helper construct 5.\n\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`MyApp`|ns||15-314||\n|`AuditableAttribute`|class|pub|40-43|public class AuditableAttribute : Attribute|\n|`AuditableAttribute.Level`|prop|pub|42||\n|`Person`|class|pub|53-172|public class Person : IComparable<Person>, IDisposable|\n|`Person.MAX_AGE`|const|pub|55||\n|`Person.Name`|prop|pub|68||\n|`Person.Age`|prop|pub|79||\n|`Person.Id`|prop|pub|85||\n|`Person.Person`|fn|pub|97-101|public Person(string name, int age)|\n|`Person.Greet`|fn|pub|106-110|public void Greet()|\n|`Person.FetchAsync`|fn|pub|117-120|public static async Task<string> FetchAsync(CancellationT...|\n|`Person.CompareTo`|fn|pub|127-130|public int CompareTo(Person? other)|\n|`Person.Dispose`|fn|pub|135-139|public void Dispose()|\n|`Person.Deconstruct`|fn|pub|162-165|public void Deconstruct(out string name, out int age)|\n|`MyApp.GetInstanceCount`|fn|pub|171-179|public static int GetInstanceCount() => _instanceCount|\n|`IGreeter`|iface|pub|179-193|public interface IGreeter|\n|`IGreeter.SayHello`|fn||184-192|void SayHello(string name)|\n|`IGreeter.SayGoodbye`|fn||190-192|void SayGoodbye(string name)|\n|`IRepository`|iface|pub|199-208|public interface IRepository<T> where T : class, new()|\n|`MyApp.FindByIdAsync`|fn||201-215|Task<T?> FindByIdAsync(int id)|\n|`MyApp.GetAllAsync`|fn||204-215|IAsyncEnumerable<T> GetAllAsync(CancellationToken token =...|\n|`MyApp.SaveAsync`|fn||207-215|Task<bool> SaveAsync(T entity)|\n|`Point`|struct|pub|215-230|public readonly struct Point|\n|`Point.X`|prop|pub|217||\n|`Point.Y`|prop|pub|219||\n|`Color`|enum|pub|238-249|public enum Color|\n|`MyApp.ConfigEntry`|fn|pub|258-292|public record ConfigEntry(string Key, string Value)|\n|`StringExtensions`|class|pub|272-292|public static class StringExtensions|\n|`StringExtensions.Truncate`|fn|pub|279-282|public static string Truncate(this string str, int maxLen...|\n|`StringExtensions.IsAscii`|fn|pub|289-291|public static bool IsAscii(this string str)|\n|`SortedCollection`|class|pub|300-322|public class SortedCollection<T> where T : IComparable<T>|\n|`SortedCollection.Add`|fn|pub|307-312|public void Add(T item)|\n|`SortedCollection.Where`|fn|pub|319-321|public IEnumerable<T> Where(Func<T, bool> predicate)|\n|`PatternMatcher`|class|pub|329-347|public static class PatternMatcher|\n|`PatternMatcher.Describe`|fn|pub|335-346|public static string Describe(object? obj)|\n|`MyApp.Services`|ns||352||\n|`MyApp.Core`|ns||353||\n|`MyApp.Data`|ns||354||\n|`MyApp.Api`|ns||355||\n|`ILogger`|iface|pub|356|public interface ILogger {}|\n|`IParser`|iface|pub|357|public interface IParser {}|\n|`IRunner`|iface|pub|358|public interface IRunner {}|\n|`ModeCs`|enum|pub|359|public enum ModeCs { Fast, Safe }|\n|`PhaseCs`|enum|pub|360|public enum PhaseCs { Init, Done }|\n|`StateCs`|enum|pub|361|public enum StateCs { Open, Closed }|\n|`SignalCs`|enum|pub|362|public enum SignalCs { On, Off }|\n|`Size`|struct|pub|363|public struct Size { public int W; public int H; }|\n|`Vector`|struct|pub|364|public readonly struct Vector { public readonly int X; pu...|\n|`Limits`|struct|pub|365|public struct Limits { public int Max; }|\n|`Cursor`|struct|pub|366|public struct Cursor { public int Index; }|\n|`MIN_AGE`|const|pub|368||\n|`RETRY_LIMIT`|const|pub|369||\n|`CACHE_SIZE`|const|pub|370||\n|`DEFAULT_PAGE`|const|pub|371||\n|`ReqCoverCsharp`|class|pub|374-410|public static class ReqCoverCsharp|\n|`ReqCoverCsharp.ReqCoverCsharp1`|fn|pub|380|public static int ReqCoverCsharp1(int value) { return val...|\n|`ReqCoverCsharp.ReqCoverCsharp2`|fn|pub|387|public static int ReqCoverCsharp2(int value) { return val...|\n|`ReqCoverCsharp.ReqCoverCsharp3`|fn|pub|394|public static int ReqCoverCsharp3(int value) { return val...|\n|`ReqCoverCsharp.ReqCoverCsharp4`|fn|pub|401|public static int ReqCoverCsharp4(int value) { return val...|\n|`ReqCoverCsharp.ReqCoverCsharp5`|fn|pub|408|public static int ReqCoverCsharp5(int value) { return val...|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_elixir.ex | Elixir | 409L | 66 symbols | 5 imports | 57 comments\n> Path: `tests/fixtures/fixture_elixir.ex`\n\n## Imports\n```\nuse GenServer\nimport Enum\nalias MyApp.Config\nalias MyApp.Server.State\nrequire Logger\n```\n\n## Definitions\n\n### mod `defmodule MyApp.Server do` (L10-183)\n- fn `def add_item(server, item) do` (L79-81)\n- fn `def get_items(server) do` (L90-92)\n- fn `def notify(server, event) do` (L102-104)\n- fn `defp via_tuple(name) do` (L111-113)\n - @brief Generate a via-tuple for process registration.\n - @param name The server name.\n - @return Via-tuple for Registry lookup.\n- fn `def init(opts) do` (L118-131)\n- fn `def handle_call({:add_item, item}, _from, state) do` (L134-142)\n- fn `def handle_call(:get_items, _from, state) do` (L145-147)\n- fn `def handle_cast({:notify, event}, state) do` (L150-153)\n- fn `def handle_info(:timeout, state) do` (L156-159)\n- fn `defp handle_internal(state) do` (L164-168)\n - @brief Handle internal state cleanup and maintenance.\n - @param state Current server state.\n - @return Updated state with pruned items.\n- fn `defmacro my_macro(expr) do` (L176-182)\n\n### struct `defstruct [:name, :port, items: [], started_at: nil]` (L44-69)\n- @brief Maximum items stored in server state.\n- fn `def start_link(opts) do` (L66-69)\n\n### proto `defprotocol Printable do` (L187-200)\n- fn `def print(data)` (L199-200)\n\n### impl `defimpl Printable, for: MyApp.Server do` (L204-214)\n- fn `def print(server) do` (L211-213)\n\n### impl `defimpl Printable, for: BitString do` (L216-220)\n- fn `def print(str) do` (L217-219)\n\n### mod `defmodule MyApp.Utils do` (L224-296)\n- fn `def classify(value) when is_integer(value) and value > 0, do: :positive` (L237-258)\n- fn `def classify(value) when is_integer(value) and value < 0, do: :negative` (L238-258)\n- fn `def classify(0), do: :zero` (L239-258)\n- fn `def classify(value) when is_binary(value), do: :string` (L240-258)\n- fn `def classify(value) when is_list(value), do: :list` (L241-258)\n- fn `def classify(_), do: :unknown` (L242-258)\n- fn `def process_list(items) do` (L251-258)\n- fn `def pythagorean_triples(range) do` (L267-274)\n- fn `def safe_divide(_, 0), do: {:error, :division_by_zero}` (L284-296)\n- fn `def safe_divide(a, b), do: {:ok, a / b}` (L285-296)\n- fn `def factorial(0), do: 1` (L294-296)\n- fn `def factorial(n) when n > 0, do: n * factorial(n - 1)` (L295-296)\n\n### mod `defmodule MyApp.Plugin do` (L300-315)\n\n### mod `defmodule MyApp.Extra do` (L318-321)\n\n### struct `defstruct [:name]` (L320-321)\n\n### mod `defmodule MyApp.Audit do` (L323-325)\n\n### struct `defstruct [:id]` (L324-325)\n\n### mod `defmodule MyApp.State do` (L327-329)\n\n### struct `defstruct [:status]` (L328-329)\n\n### mod `defmodule MyApp.Payload do` (L331-333)\n\n### struct `defstruct [:value]` (L332-333)\n\n### mod `defmodule MyApp.Context do` (L335-337)\n\n### struct `defstruct [:meta]` (L336-337)\n\n### proto `defprotocol Auditable do` (L339-341)\n- fn `def audit(data)` (L340-341)\n\n### proto `defprotocol Renderable do` (L343-345)\n- fn `def render(data)` (L344-345)\n\n### proto `defprotocol Parsable do` (L347-349)\n- fn `def parse(data)` (L348-349)\n\n### proto `defprotocol Validatable do` (L351-353)\n- fn `def validate(data)` (L352-353)\n\n### impl `defimpl Auditable, for: Any do` (L355-357)\n- fn `def audit(data), do: data` (L356-357)\n\n### impl `defimpl Renderable, for: Any do` (L359-361)\n- fn `def render(data), do: data` (L360-361)\n\n### impl `defimpl Parsable, for: Any do` (L363-365)\n- fn `def parse(data), do: data` (L364-365)\n\n### impl `defimpl Validatable, for: Any do` (L367-369)\n- fn `def validate(data), do: data` (L368-369)\n\n### mod `defmodule ReqCoverElixir do` (L372-408)\n- @brief Coverage helper construct 1.\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n- fn `def req_cover_elixir_1(value), do: value + 1` (L378-408)\n - @brief Coverage helper construct 1.\n - @brief Coverage helper construct 2.\n - @details Provides deterministic fixture-level Doxygen coverage block 1.\n - @param value Input value for helper construct 1.\n - @return Output value for helper construct 1.\n- fn `def req_cover_elixir_2(value), do: value + 2` (L385-408)\n - @brief Coverage helper construct 2.\n - @brief Coverage helper construct 3.\n - @details Provides deterministic fixture-level Doxygen coverage block 2.\n - @param value Input value for helper construct 2.\n - @return Output value for helper construct 2.\n- fn `def req_cover_elixir_3(value), do: value + 3` (L392-408)\n - @brief Coverage helper construct 3.\n - @brief Coverage helper construct 4.\n - @details Provides deterministic fixture-level Doxygen coverage block 3.\n - @param value Input value for helper construct 3.\n - @return Output value for helper construct 3.\n- fn `def req_cover_elixir_4(value), do: value + 4` (L399-408)\n - @brief Coverage helper construct 4.\n - @brief Coverage helper construct 5.\n - @details Provides deterministic fixture-level Doxygen coverage block 4.\n - @param value Input value for helper construct 4.\n - @return Output value for helper construct 4.\n- fn `def req_cover_elixir_5(value), do: value + 5` (L406-408)\n - @brief Coverage helper construct 5.\n - @details Provides deterministic fixture-level Doxygen coverage block 5.\n - @param value Input value for helper construct 5.\n - @return Output value for helper construct 5.\n\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`MyApp.Server`|mod||10-183||\n|`[:name, :port, items: [], started_at: nil]`|struct||44-69|defstruct [:name, :port, items: [], started_at: nil]|\n|`[:name, :port, items: [], started_at: nil].start_link`|fn||66-69|def start_link(opts) do|\n|`MyApp.Server.add_item`|fn||79-81|def add_item(server, item) do|\n|`MyApp.Server.get_items`|fn||90-92|def get_items(server) do|\n|`MyApp.Server.notify`|fn||102-104|def notify(server, event) do|\n|`MyApp.Server.via_tuple`|fn||111-113|defp via_tuple(name) do|\n|`MyApp.Server.init`|fn||118-131|def init(opts) do|\n|`MyApp.Server.handle_call`|fn||134-142|def handle_call({:add_item, item}, _from, state) do|\n|`MyApp.Server.handle_call`|fn||145-147|def handle_call(:get_items, _from, state) do|\n|`MyApp.Server.handle_cast`|fn||150-153|def handle_cast({:notify, event}, state) do|\n|`MyApp.Server.handle_info`|fn||156-159|def handle_info(:timeout, state) do|\n|`MyApp.Server.handle_internal`|fn||164-168|defp handle_internal(state) do|\n|`MyApp.Server.my_macro`|fn||176-182|defmacro my_macro(expr) do|\n|`Printable`|proto||187-200||\n|`Printable.print`|fn||199-200|def print(data)|\n|`Printable`|impl||204-214|defimpl Printable, for: MyApp.Server do|\n|`Printable.print`|fn||211-213|def print(server) do|\n|`Printable`|impl||216-220|defimpl Printable, for: BitString do|\n|`Printable.print`|fn||217-219|def print(str) do|\n|`MyApp.Utils`|mod||224-296||\n|`MyApp.Utils.classify`|fn||237-258|def classify(value) when is_integer(value) and value > 0,...|\n|`MyApp.Utils.classify`|fn||238-258|def classify(value) when is_integer(value) and value < 0,...|\n|`MyApp.Utils.classify`|fn||239-258|def classify(0), do: :zero|\n|`MyApp.Utils.classify`|fn||240-258|def classify(value) when is_binary(value), do: :string|\n|`MyApp.Utils.classify`|fn||241-258|def classify(value) when is_list(value), do: :list|\n|`MyApp.Utils.classify`|fn||242-258|def classify(_), do: :unknown|\n|`MyApp.Utils.process_list`|fn||251-258|def process_list(items) do|\n|`MyApp.Utils.pythagorean_triples`|fn||267-274|def pythagorean_triples(range) do|\n|`MyApp.Utils.safe_divide`|fn||284-296|def safe_divide(_, 0), do: {:error, :division_by_zero}|\n|`MyApp.Utils.safe_divide`|fn||285-296|def safe_divide(a, b), do: {:ok, a / b}|\n|`MyApp.Utils.factorial`|fn||294-296|def factorial(0), do: 1|\n|`MyApp.Utils.factorial`|fn||295-296|def factorial(n) when n > 0, do: n * factorial(n - 1)|\n|`MyApp.Plugin`|mod||300-315||\n|`MyApp.Extra`|mod||318-321||\n|`[:name]`|struct||320-321|defstruct [:name]|\n|`MyApp.Audit`|mod||323-325||\n|`[:id]`|struct||324-325|defstruct [:id]|\n|`MyApp.State`|mod||327-329||\n|`[:status]`|struct||328-329|defstruct [:status]|\n|`MyApp.Payload`|mod||331-333||\n|`[:value]`|struct||332-333|defstruct [:value]|\n|`MyApp.Context`|mod||335-337||\n|`[:meta]`|struct||336-337|defstruct [:meta]|\n|`Auditable`|proto||339-341||\n|`Auditable.audit`|fn||340-341|def audit(data)|\n|`Renderable`|proto||343-345||\n|`Renderable.render`|fn||344-345|def render(data)|\n|`Parsable`|proto||347-349||\n|`Parsable.parse`|fn||348-349|def parse(data)|\n|`Validatable`|proto||351-353||\n|`Validatable.validate`|fn||352-353|def validate(data)|\n|`Auditable`|impl||355-357|defimpl Auditable, for: Any do|\n|`Auditable.audit`|fn||356-357|def audit(data), do: data|\n|`Renderable`|impl||359-361|defimpl Renderable, for: Any do|\n|`Renderable.render`|fn||360-361|def render(data), do: data|\n|`Parsable`|impl||363-365|defimpl Parsable, for: Any do|\n|`Parsable.parse`|fn||364-365|def parse(data), do: data|\n|`Validatable`|impl||367-369|defimpl Validatable, for: Any do|\n|`Validatable.validate`|fn||368-369|def validate(data), do: data|\n|`ReqCoverElixir`|mod||372-408||\n|`ReqCoverElixir.req_cover_elixir_1`|fn||378-408|def req_cover_elixir_1(value), do: value + 1|\n|`ReqCoverElixir.req_cover_elixir_2`|fn||385-408|def req_cover_elixir_2(value), do: value + 2|\n|`ReqCoverElixir.req_cover_elixir_3`|fn||392-408|def req_cover_elixir_3(value), do: value + 3|\n|`ReqCoverElixir.req_cover_elixir_4`|fn||399-408|def req_cover_elixir_4(value), do: value + 4|\n|`ReqCoverElixir.req_cover_elixir_5`|fn||406-408|def req_cover_elixir_5(value), do: value + 5|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_go.go | Go | 341L | 43 symbols | 5 imports | 113 comments\n> Path: `tests/fixtures/fixture_go.go`\n\n## Imports\n```\nimport (\nimport \"os\"\nimport \"time\"\nimport \"strings\"\nimport \"bytes\"\n```\n\n## Definitions\n\n### mod `package main` `priv` (L12-48)\n- const `const MaxSize = 100` (L24)\n- const `var globalVar = 0` `priv` (L27)\n\n### struct `type Server struct` (L43-48)\n\n- type `type HandlerFunc func(ctx context.Context, req []byte) ([]byte, error)` (L51)\n### struct `type Address struct` (L54-58)\n\n### struct `type Employee struct` (L61-66)\n\n### iface `type Handler interface` (L71-74)\n\n### iface `type ReadWriteCloser interface` (L77-81)\n\n- type `type MyInt int` (L86)\n### method `func (m MyInt) String() string` (L89-91)\n\n### iface `type Ordered interface` (L104-106)\n\n### fn `func main()` `priv` (L111-113)\n\n### fn `func init()` `priv` (L116-119)\n\n### method `func (s *Server) Start() error` (L123-132)\n\n### method `func (s *Server) Register(path string, handler HandlerFunc)` (L138-143)\n- @param path The URL path to register.\n- @param handler The function to invoke for this path.\n\n### fn `func Divide(a, b int) (int, int, error)` (L180-185)\n- @param a Dividend.\n- @param b Divisor; must not be zero.\n- @return Quotient and remainder, or error if b is zero.\n\n### fn `func ParseConfig(input string) (host string, port int, err error)` (L192-200)\n- @param input Configuration string in \"host:port\" format.\n- @return Named host and port values, or error.\n\n### fn `func Counter() func() int` (L206-213)\n- @return Closure yielding successive integer counts.\n\n### fn `func FanOut(items []string, workers int) <-chan string` (L221-243)\n- @param items Slice of strings to process.\n- @param workers Number of concurrent worker goroutines.\n- @return Channel delivering processed results.\n\n- const `\tvar wg sync.WaitGroup` `priv` (L223)\n### fn `func Describe(v interface{}) string` (L250-266)\n- @param v Any value to describe.\n- @return Human-readable type description.\n\n### fn `func SafeExecute(fn func()) (err error)` (L273-282)\n- @param fn The function to execute safely.\n- @return Error if fn panicked, nil otherwise.\n\n### mod `package utilx` `priv` (L285-293)\n\n### mod `package configx` `priv` (L286-293)\n\n### mod `package jobsx` `priv` (L287-293)\n\n### mod `package metricx` `priv` (L288-293)\n- method `func (s *Server) Stop() {}` (L293)\n\n- method `func (s *Server) Reset() {}` (L294)\n- struct `type Session struct { Id string }` (L295)\n- struct `type Bucket struct { Name string }` (L296)\n- iface `type Closer interface { Close() error }` (L297)\n- iface `type Starter interface { Start() error }` (L298)\n- type `type UserAlias string` (L299)\n- type `type Amount int` (L300)\n- type `type Resolver func(string) error` (L301)\n- const `const RetryCount = 3` (L302)\n- const `var LastError error` (L303)\n- fn `func reqCoverGo1(value int) int { return value + 1 }` `priv` (L311)\n- @brief Coverage helper construct 1.\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n- @param value Input value for helper construct 1.\n- @return Output value for helper construct 1.\n- fn `func reqCoverGo2(value int) int { return value + 2 }` `priv` (L318)\n- @brief Coverage helper construct 2.\n- @details Provides deterministic fixture-level Doxygen coverage block 2.\n- @param value Input value for helper construct 2.\n- @return Output value for helper construct 2.\n- fn `func reqCoverGo3(value int) int { return value + 3 }` `priv` (L325)\n- @brief Coverage helper construct 3.\n- @details Provides deterministic fixture-level Doxygen coverage block 3.\n- @param value Input value for helper construct 3.\n- @return Output value for helper construct 3.\n- fn `func reqCoverGo4(value int) int { return value + 4 }` `priv` (L332)\n- @brief Coverage helper construct 4.\n- @details Provides deterministic fixture-level Doxygen coverage block 4.\n- @param value Input value for helper construct 4.\n- @return Output value for helper construct 4.\n- fn `func reqCoverGo5(value int) int { return value + 5 }` `priv` (L339)\n- @brief Coverage helper construct 5.\n- @details Provides deterministic fixture-level Doxygen coverage block 5.\n- @param value Input value for helper construct 5.\n- @return Output value for helper construct 5.\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`main`|mod|priv|12-48||\n|`main.MaxSize`|const|pub|24||\n|`main.globalVar`|const|priv|27||\n|`Server`|struct|pub|43-48|type Server struct|\n|`HandlerFunc`|type|pub|51||\n|`Address`|struct|pub|54-58|type Address struct|\n|`Employee`|struct|pub|61-66|type Employee struct|\n|`Handler`|iface|pub|71-74|type Handler interface|\n|`ReadWriteCloser`|iface|pub|77-81|type ReadWriteCloser interface|\n|`MyInt`|type|pub|86||\n|`String`|method|pub|89-91|func (m MyInt) String() string|\n|`Ordered`|iface|pub|104-106|type Ordered interface|\n|`main`|fn|priv|111-113|func main()|\n|`init`|fn|priv|116-119|func init()|\n|`Start`|method|pub|123-132|func (s *Server) Start() error|\n|`Register`|method|pub|138-143|func (s *Server) Register(path string, handler HandlerFunc)|\n|`Divide`|fn|pub|180-185|func Divide(a, b int) (int, int, error)|\n|`ParseConfig`|fn|pub|192-200|func ParseConfig(input string) (host string, port int, er...|\n|`Counter`|fn|pub|206-213|func Counter() func() int|\n|`FanOut`|fn|pub|221-243|func FanOut(items []string, workers int) <-chan string|\n|`wg`|const|priv|223||\n|`Describe`|fn|pub|250-266|func Describe(v interface{}) string|\n|`SafeExecute`|fn|pub|273-282|func SafeExecute(fn func()) (err error)|\n|`utilx`|mod|priv|285-293||\n|`configx`|mod|priv|286-293||\n|`jobsx`|mod|priv|287-293||\n|`metricx`|mod|priv|288-293||\n|`metricx.Stop`|method|pub|293|func (s *Server) Stop() {}|\n|`Reset`|method|pub|294|func (s *Server) Reset() {}|\n|`Session`|struct|pub|295|type Session struct { Id string }|\n|`Bucket`|struct|pub|296|type Bucket struct { Name string }|\n|`Closer`|iface|pub|297|type Closer interface { Close() error }|\n|`Starter`|iface|pub|298|type Starter interface { Start() error }|\n|`UserAlias`|type|pub|299||\n|`Amount`|type|pub|300||\n|`Resolver`|type|pub|301||\n|`RetryCount`|const|pub|302||\n|`LastError`|const|pub|303||\n|`reqCoverGo1`|fn|priv|311|func reqCoverGo1(value int) int { return value + 1 }|\n|`reqCoverGo2`|fn|priv|318|func reqCoverGo2(value int) int { return value + 2 }|\n|`reqCoverGo3`|fn|priv|325|func reqCoverGo3(value int) int { return value + 3 }|\n|`reqCoverGo4`|fn|priv|332|func reqCoverGo4(value int) int { return value + 4 }|\n|`reqCoverGo5`|fn|priv|339|func reqCoverGo5(value int) int { return value + 5 }|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_haskell.hs | Haskell | 250L | 36 symbols | 5 imports | 86 comments\n> Path: `tests/fixtures/fixture_haskell.hs`\n\n## Imports\n```\nimport Data.List (sort, nub, intercalate)\nimport Data.Maybe (fromMaybe, isJust)\nimport qualified Data.Map as Map\nimport Control.Monad (when, unless, forM_)\nimport qualified Data.Set as Set\n```\n\n## Definitions\n\n### mod `module MyModule` (L11-21)\n\n- type `type Name = String` (L30)\n- type `type Config = Map.Map String Int` (L33)\n- type `type Transform a = a -> a` (L36)\n### struct `data Person = Person` (L42-46)\n\n### struct `data Tree a` (L49-53)\n\n### struct `data Expr` (L56-62)\n\n### struct `data Result a` (L64-68)\n\n### class `class Printable a where` (L72-79)\n\n### class `class Serializable a where` (L81-84)\n\n- fn `greet :: String -> String` (L112)\n- fn `safeDiv :: Double -> Double -> Maybe Double` (L117)\n- fn `eval :: Expr -> Double` (L123)\n- fn `processList :: [Int] -> [Int]` (L131)\n- fn `fibonacci :: Int -> Integer` (L143)\n- fn `insertTree :: (Ord a) => a -> Tree a -> Tree a` (L155)\n- fn `foldTree :: (b -> a -> b) -> b -> Tree a -> b` (L164)\n- fn `lookupConfig :: Config -> String -> Int -> Int` (L173)\n- fn `applyN :: Int -> Transform a -> a -> a` (L178)\n- fn `formatPersons :: (Printable a) => [a] -> String` (L184)\n- fn `safeCompute :: Double -> Double -> Double -> Maybe Double` (L189)\n- mod `module Extra.One where` (L197)\n- mod `module Extra.Two where` (L198)\n- mod `module Extra.Three where` (L199)\n- mod `module Extra.Four where` (L200)\n- type `type RequestId = Int` (L202)\n- type `type ResponseId = Int` (L203)\n- class `class Renderable a where` (L204)\n- class `class Parsable a where` (L205)\n- class `class Executable a where` (L206)\n### struct `data Envelope = Envelope String` (L207-208)\n\n- fn `reqCoverHaskell1 :: Int -> Int` (L215)\n- @brief Coverage helper construct 1.\n--\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n--\n- @param value Input value for helper construct 1.\n--\n- @return Output value for helper construct 1.\n- fn `reqCoverHaskell2 :: Int -> Int` (L223)\n- @brief Coverage helper construct 2.\n--\n- @details Provides deterministic fixture-level Doxygen coverage block 2.\n--\n- @param value Input value for helper construct 2.\n--\n- @return Output value for helper construct 2.\n- fn `reqCoverHaskell3 :: Int -> Int` (L231)\n- @brief Coverage helper construct 3.\n--\n- @details Provides deterministic fixture-level Doxygen coverage block 3.\n--\n- @param value Input value for helper construct 3.\n--\n- @return Output value for helper construct 3.\n- fn `reqCoverHaskell4 :: Int -> Int` (L239)\n- @brief Coverage helper construct 4.\n--\n- @details Provides deterministic fixture-level Doxygen coverage block 4.\n--\n- @param value Input value for helper construct 4.\n--\n- @return Output value for helper construct 4.\n- fn `reqCoverHaskell5 :: Int -> Int` (L247)\n- @brief Coverage helper construct 5.\n--\n- @details Provides deterministic fixture-level Doxygen coverage block 5.\n--\n- @param value Input value for helper construct 5.\n--\n- @return Output value for helper construct 5.\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`MyModule`|mod||11-21||\n|`Name`|type||30||\n|`Config`|type||33||\n|`Transform`|type||36||\n|`Person`|struct||42-46|data Person = Person|\n|`Tree`|struct||49-53|data Tree a|\n|`Expr`|struct||56-62|data Expr|\n|`Result`|struct||64-68|data Result a|\n|`Printable`|class||72-79|class Printable a where|\n|`Serializable`|class||81-84|class Serializable a where|\n|`greet`|fn||112|greet :: String -> String|\n|`safeDiv`|fn||117|safeDiv :: Double -> Double -> Maybe Double|\n|`eval`|fn||123|eval :: Expr -> Double|\n|`processList`|fn||131|processList :: [Int] -> [Int]|\n|`fibonacci`|fn||143|fibonacci :: Int -> Integer|\n|`insertTree`|fn||155|insertTree :: (Ord a) => a -> Tree a -> Tree a|\n|`foldTree`|fn||164|foldTree :: (b -> a -> b) -> b -> Tree a -> b|\n|`lookupConfig`|fn||173|lookupConfig :: Config -> String -> Int -> Int|\n|`applyN`|fn||178|applyN :: Int -> Transform a -> a -> a|\n|`formatPersons`|fn||184|formatPersons :: (Printable a) => [a] -> String|\n|`safeCompute`|fn||189|safeCompute :: Double -> Double -> Double -> Maybe Double|\n|`Extra.One`|mod||197||\n|`Extra.Two`|mod||198||\n|`Extra.Three`|mod||199||\n|`Extra.Four`|mod||200||\n|`RequestId`|type||202||\n|`ResponseId`|type||203||\n|`Renderable`|class||204|class Renderable a where|\n|`Parsable`|class||205|class Parsable a where|\n|`Executable`|class||206|class Executable a where|\n|`Envelope`|struct||207-208|data Envelope = Envelope String|\n|`reqCoverHaskell1`|fn||215|reqCoverHaskell1 :: Int -> Int|\n|`reqCoverHaskell2`|fn||223|reqCoverHaskell2 :: Int -> Int|\n|`reqCoverHaskell3`|fn||231|reqCoverHaskell3 :: Int -> Int|\n|`reqCoverHaskell4`|fn||239|reqCoverHaskell4 :: Int -> Int|\n|`reqCoverHaskell5`|fn||247|reqCoverHaskell5 :: Int -> Int|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_java.java | Java | 430L | 55 symbols | 7 imports | 66 comments\n> Path: `tests/fixtures/fixture_java.java`\n- @brief Comprehensive Java test fixture for parser validation.\n- @details 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## Imports\n```\nimport java.util.List;\nimport java.util.Map;\nimport java.util.Optional;\nimport java.util.function.Function;\nimport java.util.function.Predicate;\nimport java.util.stream.Collectors;\nimport static java.lang.Math.PI;\n```\n\n## Definitions\n\n### mod `package com.example.app` (L11-29)\n\n### fn `String role() default \"user\"` `@interface RequiresAuth {` (L28-39)\n\n### class `public class MyClass<T extends Comparable<T>>` : Comparable<T>> `@SuppressWarnings(\"unchecked\")` (L39-165)\n- @brief Maximum buffer size constant.\n- const `public static final int MAX_SIZE = 100` (L42)\n - @brief Maximum buffer size constant. */\n- fn `public MyClass(List<T> items)` (L51-53)\n - @brief Construct MyClass with an initial item list.\n - @param items The starting collection of items.\n- fn `public void greet(String name)` (L59-65)\n - @brief Greet a person by name on standard output.\n - @param name The person's name; must not be null.\n- fn `private static String helper()` `priv` (L71-73)\n - @brief Helper method returning a status string.\n - @return Always returns \"ok\".\n- fn `public Optional<T> findFirst(Predicate<T> predicate)` (L80-88)\n - @brief Find the first item matching a predicate.\n - @param predicate Filter condition for items.\n - @return Optional containing the first match, or empty.\n- fn `public <R> List<R> map(Function<T, R> mapper)` (L96-100)\n - @brief Transform all items using a mapping function.\n - @param <R> The result type after transformation.\n - @param mapper Function to apply to each item.\n - @return List of transformed results.\n- fn `public double sumWildcard(List<? extends Number> source)` (L107-113)\n - @brief Process items with a wildcard-bounded list.\n - @param source List of items extending Number.\n - @return Sum of all numeric values as double.\n\n### class `public class Builder` (L121-141)\n- @brief Inner builder class for constructing MyClass instances.\n- @brief Add an item to the builder.\n- @param item Item to include in the built instance.\n- @return This builder for chaining.\n- fn `public Builder add(T item)` (L129-132)\n - @brief Add an item to the builder.\n - @param item Item to include in the built instance.\n - @return This builder for chaining.\n- fn `public MyClass<T> build()` (L138-140)\n - @brief Finalize and create the MyClass instance.\n - @return A new MyClass populated with accumulated items.\n\n### class `public static class Config` (L149-164)\n- @brief Static configuration holder with validation.\n- @brief Configuration key string.\n- @brief Configuration value.\n- fn `public Config(String key, Object value)` (L160-163)\n - @brief Construct a Config entry.\n - @param key The configuration key.\n - @param value The associated value.\n\n### iface `public interface Greeter` (L173-196)\n- @brief Functional interface for greeting operations.\n- @brief Perform a greeting to the named person.\n- @param name Recipient of the greeting.\n- fn `void sayHello(String name)` (L178-186)\n - @brief Perform a greeting to the named person.\n - @brief Default farewell method with implementation.\n - @param name Recipient of the greeting.\n - @param name Person to bid farewell.\n- fn `static Greeter simple()` (L192-195)\n - @brief Static factory creating a simple Greeter.\n - @return A Greeter that prints to stdout.\n\n### enum `public enum Color` (L204-230)\n- @brief Color enum with associated hex values and behavior.\n- @brief Red color with hex #FF0000.\n- @brief Green color with hex #00FF00.\n- fn `public String getHex()` (L227-229)\n - @brief Get the hex code of this color.\n - @return Hex string including '#' prefix.\n\n### fn `public record Point(double x, double y)` (L240-261)\n- @brief Immutable 2D coordinate record.\n- @brief Compact constructor validating coordinates.\n- @param x Horizontal coordinate.\n- @param y Vertical coordinate.\n- @throws IllegalArgumentException If either coordinate is NaN.\n\n### fn `public double distanceTo(Point other)` (L256-260)\n- @brief Compute distance to another point.\n- @param other Target point.\n- @return Euclidean distance.\n\n### fn `public double area()` (L274-276)\n- @brief Compute the area of this shape.\n- @return Area as a double; subclasses provide implementation.\n\n### class `public final class Circle extends Shape` : Shape (L284-304)\n- @brief Circle shape with radius-based area computation.\n- @brief Radius of the circle.\n- fn `public Circle(double radius)` (L292-294)\n - @brief Construct a circle with a given radius.\n - @param radius Non-negative radius value.\n- fn `public double area()` (L301-303)\n\n### class `public final class Rectangle extends Shape` : Shape (L311-324)\n- @brief Rectangle shape with width and height.\n- fn `public Rectangle(double width, double height)` (L315-318)\n- fn `public double area()` (L321-323)\n\n### class `public class Evaluator` (L332-361)\n- @brief Demonstrates switch expressions and try-with-resources.\n- @brief Describe a shape using pattern matching switch expression.\n- @param shape The shape to describe.\n- @return Human-readable description string.\n- fn `public static String describe(Shape shape)` (L339-346)\n - @brief Describe a shape using pattern matching switch expression.\n - @param shape The shape to describe.\n - @return Human-readable description string.\n- fn `return switch (shape)` (L341-345)\n- fn `public static String readFile(String path) throws java.io.IOException` (L355-360)\n\n### mod `package com.example.extra.one` (L364-368)\n\n### mod `package com.example.extra.two` (L365-368)\n\n### mod `package com.example.extra.three` (L366-368)\n\n### mod `package com.example.extra.four` (L367-368)\n\n- iface `interface Runner {}` (L368)\n- iface `public interface Mapper {}` (L369)\n- iface `public interface Handler {}` (L370)\n- iface `public interface Auditor {}` (L371)\n- enum `enum ModeJava { FAST, SAFE }` (L372)\n- enum `enum PhaseJava { INIT, RUN }` (L373)\n- enum `enum StatusJava { OPEN, CLOSED }` (L374)\n- enum `enum KindJava { A, B }` (L375)\n- const `public static final int DEFAULT_LIMIT = 10;` (L376)\n- const `public static final int RETRY_LIMIT = 3;` (L377)\n- const `public static final int BUFFER_SIZE = 512;` (L378)\n- const `public static final int MAX_USERS = 99;` (L379)\n### class `class ReqCoverJava` (L383-429)\n- @brief Coverage helper construct 1.\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n- @param value Input value for helper construct 1.\n- @return Output value for helper construct 1.\n- fn `static int reqCoverJava1(int value) { return value + 1; }` (L391)\n - @brief Coverage helper construct 1.\n - @details Provides deterministic fixture-level Doxygen coverage block 1.\n - @param value Input value for helper construct 1.\n - @return Output value for helper construct 1.\n- fn `static int reqCoverJava2(int value) { return value + 2; }` (L400)\n - @brief Coverage helper construct 2.\n - @details Provides deterministic fixture-level Doxygen coverage block 2.\n - @param value Input value for helper construct 2.\n - @return Output value for helper construct 2.\n- fn `static int reqCoverJava3(int value) { return value + 3; }` (L409)\n - @brief Coverage helper construct 3.\n - @details Provides deterministic fixture-level Doxygen coverage block 3.\n - @param value Input value for helper construct 3.\n - @return Output value for helper construct 3.\n- fn `static int reqCoverJava4(int value) { return value + 4; }` (L418)\n - @brief Coverage helper construct 4.\n - @details Provides deterministic fixture-level Doxygen coverage block 4.\n - @param value Input value for helper construct 4.\n - @return Output value for helper construct 4.\n- fn `static int reqCoverJava5(int value) { return value + 5; }` (L427)\n - @brief Coverage helper construct 5.\n - @details Provides deterministic fixture-level Doxygen coverage block 5.\n - @param value Input value for helper construct 5.\n - @return Output value for helper construct 5.\n\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`com.example.app`|mod||11-29||\n|`role`|fn||28-39|String role() default \"user\"|\n|`MyClass`|class|pub|39-165|public class MyClass<T extends Comparable<T>>|\n|`MyClass.MAX_SIZE`|const|pub|42||\n|`MyClass.MyClass`|fn|pub|51-53|public MyClass(List<T> items)|\n|`MyClass.greet`|fn|pub|59-65|public void greet(String name)|\n|`MyClass.helper`|fn|priv|71-73|private static String helper()|\n|`MyClass.findFirst`|fn|pub|80-88|public Optional<T> findFirst(Predicate<T> predicate)|\n|`MyClass.map`|fn|pub|96-100|public <R> List<R> map(Function<T, R> mapper)|\n|`MyClass.sumWildcard`|fn|pub|107-113|public double sumWildcard(List<? extends Number> source)|\n|`Builder`|class|pub|121-141|public class Builder|\n|`Builder.add`|fn|pub|129-132|public Builder add(T item)|\n|`Builder.build`|fn|pub|138-140|public MyClass<T> build()|\n|`Config`|class|pub|149-164|public static class Config|\n|`Config.Config`|fn|pub|160-163|public Config(String key, Object value)|\n|`Greeter`|iface|pub|173-196|public interface Greeter|\n|`Greeter.sayHello`|fn||178-186|void sayHello(String name)|\n|`Greeter.simple`|fn||192-195|static Greeter simple()|\n|`Color`|enum|pub|204-230|public enum Color|\n|`Color.getHex`|fn|pub|227-229|public String getHex()|\n|`Point`|fn|pub|240-261|public record Point(double x, double y)|\n|`distanceTo`|fn|pub|256-260|public double distanceTo(Point other)|\n|`area`|fn|pub|274-276|public double area()|\n|`Circle`|class|pub|284-304|public final class Circle extends Shape|\n|`Circle.Circle`|fn|pub|292-294|public Circle(double radius)|\n|`Circle.area`|fn|pub|301-303|public double area()|\n|`Rectangle`|class|pub|311-324|public final class Rectangle extends Shape|\n|`Rectangle.Rectangle`|fn|pub|315-318|public Rectangle(double width, double height)|\n|`Rectangle.area`|fn|pub|321-323|public double area()|\n|`Evaluator`|class|pub|332-361|public class Evaluator|\n|`Evaluator.describe`|fn|pub|339-346|public static String describe(Shape shape)|\n|`Evaluator.switch`|fn||341-345|return switch (shape)|\n|`Evaluator.readFile`|fn|pub|355-360|public static String readFile(String path) throws java.io...|\n|`com.example.extra.one`|mod||364-368||\n|`com.example.extra.two`|mod||365-368||\n|`com.example.extra.three`|mod||366-368||\n|`com.example.extra.four`|mod||367-368||\n|`Runner`|iface||368|interface Runner {}|\n|`Mapper`|iface|pub|369|public interface Mapper {}|\n|`Handler`|iface|pub|370|public interface Handler {}|\n|`Auditor`|iface|pub|371|public interface Auditor {}|\n|`ModeJava`|enum||372|enum ModeJava { FAST, SAFE }|\n|`PhaseJava`|enum||373|enum PhaseJava { INIT, RUN }|\n|`StatusJava`|enum||374|enum StatusJava { OPEN, CLOSED }|\n|`KindJava`|enum||375|enum KindJava { A, B }|\n|`DEFAULT_LIMIT`|const|pub|376||\n|`RETRY_LIMIT`|const|pub|377||\n|`BUFFER_SIZE`|const|pub|378||\n|`MAX_USERS`|const|pub|379||\n|`ReqCoverJava`|class||383-429|class ReqCoverJava|\n|`ReqCoverJava.reqCoverJava1`|fn||391|static int reqCoverJava1(int value) { return value + 1; }|\n|`ReqCoverJava.reqCoverJava2`|fn||400|static int reqCoverJava2(int value) { return value + 2; }|\n|`ReqCoverJava.reqCoverJava3`|fn||409|static int reqCoverJava3(int value) { return value + 3; }|\n|`ReqCoverJava.reqCoverJava4`|fn||418|static int reqCoverJava4(int value) { return value + 4; }|\n|`ReqCoverJava.reqCoverJava5`|fn||427|static int reqCoverJava5(int value) { return value + 5; }|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_javascript.js | JavaScript | 383L | 39 symbols | 5 imports | 88 comments\n> Path: `tests/fixtures/fixture_javascript.js`\n- @brief Comprehensive JavaScript test fixture for parser validation.\n- @details Covers classes with private fields, generators, async generators,\nproxies, symbols, IIFE, dynamic imports, destructuring, computed\nproperties, and chained promise patterns.\n\n## Imports\n```\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport fs from 'fs';\nimport path from 'path';\nimport url from 'url';\n```\n\n## Definitions\n\n### class `class MyComponent` (L20-66)\n- @brief React-like component with private fields and static initialization.\n- @brief Private instance counter, not accessible outside the class.\n\n### class `class EnhancedComponent extends MyComponent` : MyComponent (L75-93)\n- @brief Extended component with lifecycle hooks.\n- @brief Override render to return a div element.\n- @return {Object} A simple virtual DOM node.\n\n### fn `function greet(name)` (L103-105)\n- @brief Greet a person by name.\n- @param {string} name The person's name.\n- @return {string} Greeting message.\n\n### fn `async function fetchData()` (L112-115)\n- @brief Fetch data from the API endpoint asynchronously.\n- @return {Promise<Response>} The fetch response promise.\n\n### fn `const handler = (event) =>` (L122-126)\n- @brief Event handler arrow function for UI events.\n- @param {Event} event The DOM event object.\n\n### fn `const processItems = ({ items, count }) =>` (L134-136)\n- @brief Arrow function with destructuring parameter.\n- @param {{ items: Array, count: number }} param0 Destructured config.\n- @return {Array} Processed item list.\n\n- const `const MAX_SIZE = 100;` (L141)\n- const `const PLUGIN_KEY = Symbol('plugin');` (L144)\n### comp `const MyWrapped = React.memo(() =>` (L153-155)\n- @brief Memoized functional component demonstrating React.memo usage.\n- @return {null} Renders nothing; serves as a parser test case.\n\n### fn `function* idGenerator()` (L164-170)\n- @brief Infinite generator producing sequential integer IDs.\n@yields {number} The next unique ID.\n\n### fn `function* rangeGenerator(start, end)` (L179-183)\n- @brief Generator yielding integers in a bounded range.\n- @param {number} start Inclusive lower bound.\n- @param {number} end Exclusive upper bound.\n@yields {number} Each integer from start to end-1.\n\n### fn `async function* asyncDataStream(url)` (L194-206)\n- @brief Asynchronously yield paginated API results.\n- @param {string} url Base URL for pagination.\n@yields {Object} Each page's parsed JSON data.\n\n### fn `const initResult = (() =>` (L213-217)\n- @brief Immediately invoked function expression for module initialization.\n\n### fn `function createProxy(target)` (L227-240)\n- @brief Create a logging proxy around any target object.\n- @param {Object} target The object to wrap with proxy traps.\n- @return {Proxy} Proxied object that logs property access.\n\n### fn `function buildDynamic(prefix)` (L250-258)\n- @brief Build an object with computed property keys.\n- @param {string} prefix Key prefix for dynamic properties.\n- @return {Object} Object with dynamically named properties.\n\n### fn `function fetchAndProcess(url)` (L268-280)\n- @brief Demonstrate chained promise pattern with error recovery.\n- @param {string} url The resource URL to fetch.\n- @return {Promise<Object>} Processed data or fallback on error.\n\n### fn `function configureApp({ host = 'localhost', port = 3000, db: { url: dbUrl = 'sqlite://' } = {} } = {})` (L290-292)\n- @brief Configure application with deep destructuring defaults.\n- @param {Object} options Configuration object with nested defaults.\n- @return {Object} Resolved configuration.\n\n### mod `const fs = require('fs')` (L297-307)\n- @brief Load the Node.js filesystem module via CommonJS. */\n\n### fn `function setPrivate(obj, data)` (L310-312)\n- @brief Store private data associated with an object.\n- @param {Object} obj The key object.\n- @param {*} data The private data to associate.\n\n### fn `async function loadPlugin(name)` (L322-326)\n- @brief Dynamically import a module at runtime.\n- @param {string} name Module specifier to import.\n- @return {Promise<Module>} The loaded module namespace.\n\n- class `export class ExtraService { constructor() { this.ready = true; } }` (L332)\n- class `class HelperComponent { render() { return null; } }` (L333)\n- class `export default class WidgetFactory { create() { return {}; } }` (L334)\n### comp `const BoundComponent = React.memo(() => null)` (L335-336)\n\n- comp `const ForwardedWidget = React.forwardRef((_, ref) => ({ ref }));` (L336)\n### comp `const LazyWidget = React.lazy(() => import('./Widget'))` (L337-353)\n\n### comp `const MemoPanel = memo(() => null)` (L338-353)\n\n- const `const API_TOKEN = 'tok';` (L339)\n- const `const CACHE_SIZE = 128;` (L340)\n- const `const RETRY_LIMIT = 5;` (L341)\n### mod `const pathMod = require('path')` (L342-353)\n\n### mod `const cryptoMod = require('crypto')` (L343-353)\n\n### mod `const utilMod = require('util')` (L344-353)\n\n### mod `const osMod = require('os')` (L345-353)\n- fn `function reqCoverJs1(value) { return value + 1; }` (L353)\n - @brief Coverage helper construct 1.\n - @details Provides deterministic fixture-level Doxygen coverage block 1.\n - @param value Input value for helper construct 1.\n - @return Output value for helper construct 1.\n\n- fn `function reqCoverJs2(value) { return value + 2; }` (L360)\n- @brief Coverage helper construct 2.\n- @details Provides deterministic fixture-level Doxygen coverage block 2.\n- @param value Input value for helper construct 2.\n- @return Output value for helper construct 2.\n- fn `function reqCoverJs3(value) { return value + 3; }` (L367)\n- @brief Coverage helper construct 3.\n- @details Provides deterministic fixture-level Doxygen coverage block 3.\n- @param value Input value for helper construct 3.\n- @return Output value for helper construct 3.\n- fn `function reqCoverJs4(value) { return value + 4; }` (L374)\n- @brief Coverage helper construct 4.\n- @details Provides deterministic fixture-level Doxygen coverage block 4.\n- @param value Input value for helper construct 4.\n- @return Output value for helper construct 4.\n- fn `function reqCoverJs5(value) { return value + 5; }` (L381)\n- @brief Coverage helper construct 5.\n- @details Provides deterministic fixture-level Doxygen coverage block 5.\n- @param value Input value for helper construct 5.\n- @return Output value for helper construct 5.\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`MyComponent`|class||20-66|class MyComponent|\n|`EnhancedComponent`|class||75-93|class EnhancedComponent extends MyComponent|\n|`greet`|fn||103-105|function greet(name)|\n|`fetchData`|fn||112-115|async function fetchData()|\n|`handler`|fn||122-126|const handler = (event) =>|\n|`processItems`|fn||134-136|const processItems = ({ items, count }) =>|\n|`MAX_SIZE`|const||141||\n|`PLUGIN_KEY`|const||144||\n|`MyWrapped`|comp||153-155||\n|`idGenerator`|fn||164-170|function* idGenerator()|\n|`rangeGenerator`|fn||179-183|function* rangeGenerator(start, end)|\n|`asyncDataStream`|fn||194-206|async function* asyncDataStream(url)|\n|`initResult`|fn||213-217|const initResult = (() =>|\n|`createProxy`|fn||227-240|function createProxy(target)|\n|`buildDynamic`|fn||250-258|function buildDynamic(prefix)|\n|`fetchAndProcess`|fn||268-280|function fetchAndProcess(url)|\n|`configureApp`|fn||290-292|function configureApp({ host = 'localhost', port = 3000, ...|\n|`fs`|mod||297-307||\n|`setPrivate`|fn||310-312|function setPrivate(obj, data)|\n|`loadPlugin`|fn||322-326|async function loadPlugin(name)|\n|`ExtraService`|class||332|export class ExtraService { constructor() { this.ready = ...|\n|`HelperComponent`|class||333|class HelperComponent { render() { return null; } }|\n|`WidgetFactory`|class||334|export default class WidgetFactory { create() { return {}...|\n|`BoundComponent`|comp||335-336||\n|`ForwardedWidget`|comp||336||\n|`LazyWidget`|comp||337-353||\n|`MemoPanel`|comp||338-353||\n|`API_TOKEN`|const||339||\n|`CACHE_SIZE`|const||340||\n|`RETRY_LIMIT`|const||341||\n|`pathMod`|mod||342-353||\n|`cryptoMod`|mod||343-353||\n|`utilMod`|mod||344-353||\n|`osMod`|mod||345-353||\n|`osMod.reqCoverJs1`|fn||353|function reqCoverJs1(value) { return value + 1; }|\n|`reqCoverJs2`|fn||360|function reqCoverJs2(value) { return value + 2; }|\n|`reqCoverJs3`|fn||367|function reqCoverJs3(value) { return value + 3; }|\n|`reqCoverJs4`|fn||374|function reqCoverJs4(value) { return value + 4; }|\n|`reqCoverJs5`|fn||381|function reqCoverJs5(value) { return value + 5; }|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_kotlin.kt | Kotlin | 451L | 58 symbols | 5 imports | 77 comments\n> Path: `tests/fixtures/fixture_kotlin.kt`\n- @brief Comprehensive Kotlin test fixture for parser validation.\n- @details Covers extension functions, inline/reified generics, DSL builders,\ndelegation, coroutine scope, destructuring, sealed interfaces,\nvalue classes, operator overloading, and lateinit.\n\n## Imports\n```\nimport kotlin.collections.List\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.flow\nimport kotlin.math.max\nimport kotlin.math.min\n```\n\n## Definitions\n\n### class `data class User(val name: String, val age: Int = 0)` `@Deprecated(\"Use UserV2 instead\", replaceWith = ReplaceWith(\"UserV2\"))` (L19-61)\n\n### class `sealed class Result<out T>` (L28-61)\n- @brief Sealed class representing success/failure outcomes.\n@tparam T The success value type.\n- @brief Successful outcome holding a value.\n- @param value The result data.\n\n### class `data class Success<T>(val value: T) : Result<T>()` (L34-60)\n- @brief Successful outcome holding a value.\n- @brief Failed outcome holding an error message.\n- @param value The result data.\n- @param message Description of the failure.\n- @param cause Optional underlying exception.\n\n### class `data class Error(val message: String, val cause: Throwable? = null) : Result<Nothing>()` : Result<Nothing>() (L42-60)\n- @brief Failed outcome holding an error message.\n- @brief Singleton state representing an in-progress operation.\n- @param message Description of the failure.\n- @param cause Optional underlying exception.\n\n### mod `object Loading : Result<Nothing>()` (L48-60)\n- @brief Singleton state representing an in-progress operation.\n- @brief Map the success value using a transform function. @tparam R The target type after transformation.\n- @param transform Function converting T to R.\n- @return Transformed Result or original error/loading state.\n- fn `fun <R> map(transform: (T) -> R): Result<R> = when (this)` (L56-60)\n - @brief Map the success value using a transform function.\n@tparam R The target type after transformation.\n - @param transform Function converting T to R.\n - @return Transformed Result or original error/loading state.\n\n### iface `interface Repository<T>` (L70-90)\n- @brief Generic CRUD repository interface.\n@tparam T Entity type managed by this repository.\n- @brief Find an entity by its unique identifier.\n- @param id Entity ID.\n- @return The entity or null if not found.\n\n### fn `fun findById(id: Int): T?` (L76-96)\n- @brief Find an entity by its unique identifier.\n- @brief Persist an entity.\n- @param id Entity ID.\n- @param entity The entity to save.\n- @return The entity or null if not found.\n- @return True if save succeeded.\n\n### fn `fun save(entity: T): Boolean` (L83-96)\n- @brief Persist an entity.\n- @brief Retrieve all entities as a Flow stream.\n- @param entity The entity to save.\n- @return True if save succeeded.\n- @return Flow emitting all stored entities.\n\n### fn `fun findAll(): Flow<T>` (L89-96)\n- @brief Retrieve all entities as a Flow stream.\n- @brief Sealed interface requiring an ID property.\n- @return Flow emitting all stored entities.\n\n- const `val id: Int` (L98)\n- @brief Unique entity identifier. */\n### enum `enum class Color(val hex: String)` (L107-123)\n- @brief Color enum with hex value property and companion factory.\n- @brief Red color channel.\n- @brief Green color channel.\n\n### mod `companion object` (L115-122)\n- @brief Blue color channel. */\n- @brief Parse a color from its hex string.\n- @param hex Hex color code including '#' prefix.\n- @return Matching Color or null.\n- fn `fun fromHex(hex: String): Color? = values().find { it.hex == hex }` (L121)\n - @brief Parse a color from its hex string.\n - @param hex Hex color code including '#' prefix.\n - @return Matching Color or null.\n\n### class `data class Entity(` (L134-155)\n- @brief Data class combining Identifiable with named properties.\n- @param id Unique identifier.\n- @param name Entity display name.\n- @param status Current lifecycle status.\n- const `val name: String,` (L136)\n- const `val status: String = \"active\",` (L137)\n- const `val domain: String get() = value.substringAfter('@')` (L154)\n - @brief Extract the domain part of the email. */\n\n### fn `fun greet(name: String): String` (L165-167)\n- @brief Greet a person by name.\n- @param name The person's name.\n- @return Greeting message string.\n\n### fn `suspend fun fetchData(): String` (L174-177)\n- @brief Suspend function simulating async data retrieval.\n- @return Retrieved data as a string.\n\n### fn `fun processItems(items: List<String>, transform: (String) -> String): List<String>` (L186-188)\n- @brief Higher-order function with trailing lambda syntax.\n- @param items List of strings to process.\n- @param transform Function applied to each item.\n- @return List of transformed results.\n\n- const `val String.lastChar: Char?` (L205)\n- @brief Extension property returning the last character or null.\n@receiver String The string to inspect.\n### class `data class Vector2(val x: Double, val y: Double)` (L229-249)\n- @brief 2D vector with operator overloading for arithmetic.\n- @brief Add two vectors component-wise.\n- @param x Horizontal component.\n- @param y Vertical component.\n- @param other The vector to add.\n- @return Resulting sum vector.\n\n- const `val PI = 3.14159265` (L254)\n- @brief Mathematical constant Pi. */\n- var `var counter = 0` (L257)\n- @brief Mutable package-level counter. */\n### mod `object Singleton` (L265-286)\n- @brief Application-wide singleton for configuration management.\n- @brief Mutable configuration map.\n- fn `fun set(key: String, value: Any)` (L274-276)\n - @brief Store a configuration value.\n - @param key Configuration key.\n - @param value Configuration value.\n\n### fn `fun <T> get(key: String): T? = config[key] as? T` `@Suppress(\"UNCHECKED_CAST\")` (L285-292)\n- @brief Companion object pattern for factory construction.\n\n### mod `companion object Factory` (L292-293)\n- @brief Companion object pattern for factory construction.\n\n### class `class DelegatingList<T>(private val inner: MutableList<T>) : List<T> by inner` `priv` (L303-316)\n- @brief List implementation delegating to an inner mutable list.\n@tparam T Element type.\n- @brief Count of accesses to the delegated list.\n- @param inner The backing list.\n- var `var accessCount = 0` (L305)\n - @brief Count of accesses to the delegated list. */\n\n### class `class Service` (L324-339)\n- @brief Service class demonstrating lateinit and lazy initialization.\n- @brief Late-initialized dependency, set after construction.\n- const `val resource: String by lazy` (L329)\n - @brief Lazily computed expensive resource. */\n\n### fn `fun isReady(): Boolean = ::dependency.isInitialized` (L338-347)\n- @brief Check if the dependency has been initialized.\n- @return True if dependency is set.\n\n### class `class HtmlBuilder` (L347-373)\n- @brief Simple DSL for building HTML strings.\n- @brief Add a div element with content from a lambda.\n- @param block Lambda providing the div content.\n- fn `fun div(block: HtmlBuilder.() -> Unit)` (L354-358)\n - @brief Add a div element with content from a lambda.\n - @param block Lambda providing the div content.\n- const `val inner = HtmlBuilder()` (L355)\n- fn `fun text(text: String)` (L364-366)\n - @brief Add a text node.\n - @param text The text content.\n\n### fn `fun build(): String = elements.joinToString(\"\")` (L372-381)\n- @brief Build the accumulated HTML string.\n- @brief DSL entry point for building HTML content.\n- @param block Builder lambda receiving HtmlBuilder scope.\n- @return Concatenated HTML output.\n- @return Complete HTML string.\n\n### fn `fun html(block: HtmlBuilder.() -> Unit): String` (L381-385)\n- @brief DSL entry point for building HTML content.\n- @param block Builder lambda receiving HtmlBuilder scope.\n- @return Complete HTML string.\n\n- const `val builder = HtmlBuilder()` (L382)\n### iface `interface Logger` (L390-394)\n\n### iface `interface Parser` (L391-394)\n\n### iface `interface Emitter` (L392-394)\n\n### iface `interface Formatter` (L393-394)\n\n- enum `enum class ModeKt { FAST, SAFE }` (L394)\n- enum `enum class PhaseKt { INIT, RUN }` (L395)\n- enum `enum class StatusKt { READY, WAITING }` (L396)\n- enum `enum class SignalKt { ON, OFF }` (L397)\n- mod `object CacheStore` (L400)\n- var `var retries = 0` (L401)\n- var `var attempts = 0` (L402)\n- var `var state = \"idle\"` (L403)\n- fn `fun reqCoverKotlin1(value: Int): Int = value + 1` (L413)\n- @brief Coverage helper construct 1.\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n- @param value Input value for helper construct 1.\n- @return Output value for helper construct 1.\n- fn `fun reqCoverKotlin2(value: Int): Int = value + 2` (L422)\n- @brief Coverage helper construct 2.\n- @details Provides deterministic fixture-level Doxygen coverage block 2.\n- @param value Input value for helper construct 2.\n- @return Output value for helper construct 2.\n- fn `fun reqCoverKotlin3(value: Int): Int = value + 3` (L431)\n- @brief Coverage helper construct 3.\n- @details Provides deterministic fixture-level Doxygen coverage block 3.\n- @param value Input value for helper construct 3.\n- @return Output value for helper construct 3.\n- fn `fun reqCoverKotlin4(value: Int): Int = value + 4` (L440)\n- @brief Coverage helper construct 4.\n- @details Provides deterministic fixture-level Doxygen coverage block 4.\n- @param value Input value for helper construct 4.\n- @return Output value for helper construct 4.\n- fn `fun reqCoverKotlin5(value: Int): Int = value + 5` (L449)\n- @brief Coverage helper construct 5.\n- @details Provides deterministic fixture-level Doxygen coverage block 5.\n- @param value Input value for helper construct 5.\n- @return Output value for helper construct 5.\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`User`|class||19-61|data class User(val name: String, val age: Int = 0)|\n|`Result`|class||28-61|sealed class Result<out T>|\n|`Success`|class||34-60|data class Success<T>(val value: T) : Result<T>()|\n|`Error`|class||42-60|data class Error(val message: String, val cause: Throwabl...|\n|`Loading`|mod||48-60||\n|`Loading.map`|fn||56-60|fun <R> map(transform: (T) -> R): Result<R> = when (this)|\n|`Repository`|iface||70-90|interface Repository<T>|\n|`findById`|fn||76-96|fun findById(id: Int): T?|\n|`save`|fn||83-96|fun save(entity: T): Boolean|\n|`findAll`|fn||89-96|fun findAll(): Flow<T>|\n|`id`|const||98||\n|`Color`|enum||107-123|enum class Color(val hex: String)|\n|`companion object`|mod||115-122||\n|`companion object.fromHex`|fn||121|fun fromHex(hex: String): Color? = values().find { it.hex...|\n|`Entity`|class||134-155|data class Entity(|\n|`Entity.name`|const||136||\n|`Entity.status`|const||137||\n|`Entity.domain`|const||154||\n|`greet`|fn||165-167|fun greet(name: String): String|\n|`fetchData`|fn||174-177|suspend fun fetchData(): String|\n|`processItems`|fn||186-188|fun processItems(items: List<String>, transform: (String)...|\n|`String`|const||205||\n|`Vector2`|class||229-249|data class Vector2(val x: Double, val y: Double)|\n|`PI`|const||254||\n|`counter`|var||257||\n|`Singleton`|mod||265-286||\n|`Singleton.set`|fn||274-276|fun set(key: String, value: Any)|\n|`get`|fn||285-292|fun <T> get(key: String): T? = config[key] as? T|\n|`Factory`|mod||292-293||\n|`DelegatingList`|class|priv|303-316|class DelegatingList<T>(private val inner: MutableList<T>...|\n|`DelegatingList.accessCount`|var||305||\n|`Service`|class||324-339|class Service|\n|`Service.resource`|const||329||\n|`isReady`|fn||338-347|fun isReady(): Boolean = ::dependency.isInitialized|\n|`HtmlBuilder`|class||347-373|class HtmlBuilder|\n|`HtmlBuilder.div`|fn||354-358|fun div(block: HtmlBuilder.() -> Unit)|\n|`HtmlBuilder.inner`|const||355||\n|`HtmlBuilder.text`|fn||364-366|fun text(text: String)|\n|`build`|fn||372-381|fun build(): String = elements.joinToString(\"\")|\n|`html`|fn||381-385|fun html(block: HtmlBuilder.() -> Unit): String|\n|`builder`|const||382||\n|`Logger`|iface||390-394|interface Logger|\n|`Parser`|iface||391-394|interface Parser|\n|`Emitter`|iface||392-394|interface Emitter|\n|`Formatter`|iface||393-394|interface Formatter|\n|`ModeKt`|enum||394|enum class ModeKt { FAST, SAFE }|\n|`PhaseKt`|enum||395|enum class PhaseKt { INIT, RUN }|\n|`StatusKt`|enum||396|enum class StatusKt { READY, WAITING }|\n|`SignalKt`|enum||397|enum class SignalKt { ON, OFF }|\n|`CacheStore`|mod||400||\n|`retries`|var||401||\n|`attempts`|var||402||\n|`state`|var||403||\n|`reqCoverKotlin1`|fn||413|fun reqCoverKotlin1(value: Int): Int = value + 1|\n|`reqCoverKotlin2`|fn||422|fun reqCoverKotlin2(value: Int): Int = value + 2|\n|`reqCoverKotlin3`|fn||431|fun reqCoverKotlin3(value: Int): Int = value + 3|\n|`reqCoverKotlin4`|fn||440|fun reqCoverKotlin4(value: Int): Int = value + 4|\n|`reqCoverKotlin5`|fn||449|fun reqCoverKotlin5(value: Int): Int = value + 5|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_lua.lua | Lua | 276L | 34 symbols | 0 imports | 110 comments\n> Path: `tests/fixtures/fixture_lua.lua`\n\n## Definitions\n\n### fn `function globalFunc(x)` (L14-16)\n- @param x number The input value.\n---\n- @return number The input incremented by one.\n\n### fn `local function localFunc(y)` (L22-28)\n\n### fn `local function sumAll(...)` (L33-41)\n- @param ... number Variable number of numeric arguments.\n---\n- @return number Sum of all provided values.\n\n- var `local total = 0` (L34)\n- var `local args = {...}` (L35)\n- var `local myVar = 42` (L46)\n- @brief Module-level constant for retry limits.\n- var `local config = {` (L49)\n- @brief Configuration table with default settings.\n### fn `local handler = function(event)` (L59-66)\n- @param event table Event object containing type and data fields.\n\n- var `local MyModule = {}` (L72)\n- @brief Table-based module using method syntax.\n### fn `function MyModule.new(name)` (L78-83)\n- @param name string Instance identifier.\n---\n- @return table New MyModule instance.\n\n- var `local self = setmetatable({}, MyModule)` (L79)\n### fn `MyModule.method = function(self)` (L88-90)\n- @param self table The MyModule instance.\n---\n- @return string The instance name.\n\n### fn `function MyModule:addItem(item)` (L94-97)\n- @param item any The item to store.\n\n### fn `function MyModule:count()` (L101-103)\n- @return number Number of items.\n\n- var `local Animal = {}` (L109)\n- @brief Base class using metatables for inheritance.\n### fn `function Animal.new(species)` (L115-119)\n- @param species string The animal's species.\n---\n- @return table New Animal instance.\n\n- var `local self = setmetatable({}, Animal)` (L116)\n### fn `function Animal:speak()` (L123-125)\n- @return string Sound description.\n\n- var `local Dog = setmetatable({}, { __index = Animal })` (L129)\n- @brief Dog subclass inheriting from Animal.\n### fn `function Dog.new(name)` (L135-140)\n- @param name string The dog's name.\n---\n- @return table New Dog instance.\n\n- var `local self = Animal.new(\"Dog\")` (L136)\n### fn `function Dog:speak()` (L144-146)\n- @return string The dog's vocalization.\n\n### fn `local function makeCounter(step)` (L153-160)\n- @param step number Increment amount per call.\n---\n- @return function Closure returning successive counts.\n\n- var `local count = 0` (L154)\n### fn `local function fibonacci(limit)` (L167-176)\n- @param limit number Maximum number of values to yield.\n---\n- @return function Coroutine wrap function.\n\n### fn `local function safeCall(fn, ...)` (L184-192)\n- @param fn function The function to execute.\n---\n- @param ... any Arguments to pass to fn.\n---\n- @return boolean, any Success flag and result or error message.\n\n- var `local mixedTable = {` (L197)\n- @brief Complex table demonstrating all key types.\n### fn `local function range(from, to)` (L219-228)\n- @param from number Start of range (inclusive).\n---\n- @param to number End of range (inclusive).\n---\n- @return function Iterator function.\n\n- var `local i = from - 1` (L220)\n### fn `function req_cover_lua_1(value)` (L236-238)\n- @brief Coverage helper construct 1.\n--\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n--\n- @param value Input value for helper construct 1.\n--\n- @return Output value for helper construct 1.\n\n### fn `function req_cover_lua_2(value)` (L245-247)\n- @brief Coverage helper construct 2.\n--\n- @details Provides deterministic fixture-level Doxygen coverage block 2.\n--\n- @param value Input value for helper construct 2.\n--\n- @return Output value for helper construct 2.\n\n### fn `function req_cover_lua_3(value)` (L254-256)\n- @brief Coverage helper construct 3.\n--\n- @details Provides deterministic fixture-level Doxygen coverage block 3.\n--\n- @param value Input value for helper construct 3.\n--\n- @return Output value for helper construct 3.\n\n### fn `function req_cover_lua_4(value)` (L263-265)\n- @brief Coverage helper construct 4.\n--\n- @details Provides deterministic fixture-level Doxygen coverage block 4.\n--\n- @param value Input value for helper construct 4.\n--\n- @return Output value for helper construct 4.\n\n### fn `function req_cover_lua_5(value)` (L272-274)\n- @brief Coverage helper construct 5.\n--\n- @details Provides deterministic fixture-level Doxygen coverage block 5.\n--\n- @param value Input value for helper construct 5.\n--\n- @return Output value for helper construct 5.\n\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`globalFunc`|fn||14-16|function globalFunc(x)|\n|`localFunc`|fn||22-28|local function localFunc(y)|\n|`sumAll`|fn||33-41|local function sumAll(...)|\n|`total`|var||34||\n|`args`|var||35||\n|`myVar`|var||46||\n|`config`|var||49||\n|`handler`|fn||59-66|local handler = function(event)|\n|`MyModule`|var||72||\n|`MyModule.new`|fn||78-83|function MyModule.new(name)|\n|`self`|var||79||\n|`MyModule.method`|fn||88-90|MyModule.method = function(self)|\n|`MyModule:addItem`|fn||94-97|function MyModule:addItem(item)|\n|`MyModule:count`|fn||101-103|function MyModule:count()|\n|`Animal`|var||109||\n|`Animal.new`|fn||115-119|function Animal.new(species)|\n|`self`|var||116||\n|`Animal:speak`|fn||123-125|function Animal:speak()|\n|`Dog`|var||129||\n|`Dog.new`|fn||135-140|function Dog.new(name)|\n|`self`|var||136||\n|`Dog:speak`|fn||144-146|function Dog:speak()|\n|`makeCounter`|fn||153-160|local function makeCounter(step)|\n|`count`|var||154||\n|`fibonacci`|fn||167-176|local function fibonacci(limit)|\n|`safeCall`|fn||184-192|local function safeCall(fn, ...)|\n|`mixedTable`|var||197||\n|`range`|fn||219-228|local function range(from, to)|\n|`i`|var||220||\n|`req_cover_lua_1`|fn||236-238|function req_cover_lua_1(value)|\n|`req_cover_lua_2`|fn||245-247|function req_cover_lua_2(value)|\n|`req_cover_lua_3`|fn||254-256|function req_cover_lua_3(value)|\n|`req_cover_lua_4`|fn||263-265|function req_cover_lua_4(value)|\n|`req_cover_lua_5`|fn||272-274|function req_cover_lua_5(value)|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_perl.pl | Perl | 310L | 30 symbols | 5 imports | 97 comments\n> Path: `tests/fixtures/fixture_perl.pl`\n\n## Imports\n```\nuse strict;\nuse warnings;\nuse Carp qw(croak confess);\nrequire Exporter;\nuse lib 'lib';\n```\n\n## Definitions\n\n- mod `package MyPackage;` (L16)\n- @brief Comprehensive Perl test fixture for parser validation.\n- @brief Documentation block for the fixture module.\n- @details Covers OOP with bless, Moose-like attributes, closures,\nhere-docs, wantarray, dispatch tables, prototypes, AUTOLOAD,\nand regular expressions.\nSingle line comment\n=pod\n- @details This module demonstrates advanced Perl constructs including\nobject-oriented patterns, closures, and metaprogramming.\n=cut\n- const `use constant MAX_SIZE => 100;` (L22)\n- fn `sub new {` (L48)\n- @brief Create a new MyPackage instance.\n- @param class The class name (implicit first argument).\n- @param %args Named arguments: name (required), age (optional).\n- @return Blessed hashref instance.\n=cut\n- fn `sub name {` (L62)\n- @brief Accessor for the name attribute.\n- @return The instance name string.\n- fn `sub is_valid {` (L74)\n- @brief Check if the instance is in a valid state.\n- @return 1 if valid, 0 otherwise.\n- fn `sub greet {` (L83)\n- @brief Print a greeting to stdout.\n- @param $name The person's name.\n- fn `sub process {` (L95)\n- @brief Process data and return result.\n- @return 1 indicating success.\n- fn `sub format_output {` (L102)\n- @brief Format output depending on context (list vs scalar).\n- @param @items List of items to format.\n- @return In list context: formatted items. In scalar: count.\n- fn `sub helper {` (L115)\n- @brief Standalone helper for internal use.\n- @return Always returns \"ok\".\n- fn `sub extract_emails {` (L124)\n- @brief Extract all email addresses from text.\n- @param $text Input text to scan.\n- @return List of matched email addresses.\n- fn `sub replace_all {` (L139)\n- @brief Replace all occurrences of a pattern in text.\n- @param $text Input text.\n- @param $pattern Regex pattern to find.\n- @param $replacement Replacement string.\n- @return Modified text with substitutions applied.\n- fn `sub make_multiplier {` (L150)\n- @brief Create a multiplier closure.\n- @param $factor The multiplication factor.\n- @return Coderef that multiplies its argument by factor.\n- fn `sub dispatch {` (L178)\n- fn `sub generate_template {` (L190)\n- @brief Generate a template string using a here-document.\n- @param $name Name to insert into the template.\n- @return Formatted multi-line string.\n- fn `sub AUTOLOAD {` (L210)\n- @brief Handle undefined method calls dynamically.\n- @details Methods named get_* return the corresponding attribute.\n- @param @args Arguments passed to the auto-loaded method.\n- @return The attribute value or undef.\n- fn `sub safe_execute {` (L230)\n- @brief Execute a block with error trapping.\n- @param $code Coderef to execute.\n- @return Result of execution or undef on error.\n- mod `package Extra::One;` (L248)\n- mod `package Extra::Two;` (L249)\n- mod `package Extra::Three;` (L250)\n- mod `package Extra::Four;` (L251)\n- const `use constant RETRY_LIMIT => 5;` (L252)\n- const `use constant API_HOST => 'localhost';` (L253)\n- const `use constant FEATURE_FLAG => 1;` (L254)\n- const `use constant CACHE_SIZE => 256;` (L255)\n- const `use constant DEFAULT_USER => 'guest';` (L256)\n- fn `sub req_cover_perl_1 {` (L265)\n- @brief Coverage helper construct 1.\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n- @param value Input value for helper construct 1.\n- @return Output value for helper construct 1.\n- fn `sub req_cover_perl_2 {` (L275)\n- @brief Coverage helper construct 2.\n- @details Provides deterministic fixture-level Doxygen coverage block 2.\n- @param value Input value for helper construct 2.\n- @return Output value for helper construct 2.\n- fn `sub req_cover_perl_3 {` (L285)\n- @brief Coverage helper construct 3.\n- @details Provides deterministic fixture-level Doxygen coverage block 3.\n- @param value Input value for helper construct 3.\n- @return Output value for helper construct 3.\n- fn `sub req_cover_perl_4 {` (L295)\n- @brief Coverage helper construct 4.\n- @details Provides deterministic fixture-level Doxygen coverage block 4.\n- @param value Input value for helper construct 4.\n- @return Output value for helper construct 4.\n- fn `sub req_cover_perl_5 {` (L305)\n- @brief Coverage helper construct 5.\n- @details Provides deterministic fixture-level Doxygen coverage block 5.\n- @param value Input value for helper construct 5.\n- @return Output value for helper construct 5.\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`MyPackage`|mod||16||\n|`MAX_SIZE`|const||22||\n|`new`|fn||48|sub new|\n|`name`|fn||62|sub name|\n|`is_valid`|fn||74|sub is_valid|\n|`greet`|fn||83|sub greet|\n|`process`|fn||95|sub process|\n|`format_output`|fn||102|sub format_output|\n|`helper`|fn||115|sub helper|\n|`extract_emails`|fn||124|sub extract_emails|\n|`replace_all`|fn||139|sub replace_all|\n|`make_multiplier`|fn||150|sub make_multiplier|\n|`dispatch`|fn||178|sub dispatch|\n|`generate_template`|fn||190|sub generate_template|\n|`AUTOLOAD`|fn||210|sub AUTOLOAD|\n|`safe_execute`|fn||230|sub safe_execute|\n|`Extra::One`|mod||248||\n|`Extra::Two`|mod||249||\n|`Extra::Three`|mod||250||\n|`Extra::Four`|mod||251||\n|`RETRY_LIMIT`|const||252||\n|`API_HOST`|const||253||\n|`FEATURE_FLAG`|const||254||\n|`CACHE_SIZE`|const||255||\n|`DEFAULT_USER`|const||256||\n|`req_cover_perl_1`|fn||265|sub req_cover_perl_1|\n|`req_cover_perl_2`|fn||275|sub req_cover_perl_2|\n|`req_cover_perl_3`|fn||285|sub req_cover_perl_3|\n|`req_cover_perl_4`|fn||295|sub req_cover_perl_4|\n|`req_cover_perl_5`|fn||305|sub req_cover_perl_5|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_php.php | PHP | 433L | 54 symbols | 6 imports | 70 comments\n> Path: `tests/fixtures/fixture_php.php`\n- @brief Comprehensive PHP test fixture for parser validation.\n- @details Covers enums with methods, union/intersection types, readonly\nproperties, constructor promotion, arrow functions, match expressions,\nfirst-class callables, attributes, fibers, and named arguments.\n\n## Imports\n```\nuse App\\Contracts\\Repository;\nuse App\\Events\\{ModelCreated, ModelDeleted};\nuse Psr\\Log\\LoggerInterface;\nrequire_once 'config.php';\nuse Cacheable;\nuse SoftDeletable;\n```\n\n## Definitions\n\n### ns `namespace App\\Models` (L12-15)\n\n- const `const VERSION = \"1.0\";` (L22)\n- @brief Application version string. */\n- const `const MAX_PER_PAGE = 50;` (L25)\n- @brief Maximum number of query results per page. */\n### fn `public function isActive(): bool` (L45-47)\n- @brief Check if the status represents an active state.\n- @return bool True if the entity is publicly visible.\n\n### fn `public function label(): string` (L53-59)\n- @brief Get a human-readable label for display.\n- @return string Formatted status label.\n\n### class `abstract class BaseModel` (L69-111)\n- @brief Abstract base model with common persistence operations.\n- @brief Construct a model with promoted properties.\n- @details Uses constructor promotion for compact field declaration.\n- @param int $id Unique identifier (readonly after construction).\n- @param \\DateTimeImmutable $createdAt Timestamp of creation.\n- fn `public function __construct(` (L75-78)\n - @brief Construct a model with promoted properties.\n - @param int $id Unique identifier (readonly after construction).\n - @param \\DateTimeImmutable $createdAt Timestamp of creation.\n- fn `public function save(): bool` (L84-90)\n - @brief Persist the model to the data store.\n - @return bool True if save succeeded.\n- fn `private static function validateConstraints(): bool` `priv` (L102-104)\n - @brief Internal validation helper with type narrowing.\n - @return bool True if entity passes all constraint checks.\n\n### class `final class User extends BaseModel` (L120-179)\n- @brief Concrete user entity with union and intersection types.\n- @brief User's display name.\n- fn `public function __construct(` (L133-141)\n - @brief Construct a User with promoted and explicit properties.\n - @param int $id Unique user ID.\n - @param string $name Display name.\n - @param string|null $email Optional email address.\n- fn `public function getName(): string` (L147-149)\n - @brief Get the user's display name.\n - @return string The user name.\n- fn `public function getIdentifier(): string|int` (L155-158)\n - @brief Get a value that may be string or int.\n - @return string|int The identifier in either format.\n- fn `protected function validate(): bool` `prot` (L164-166)\n - @brief Validate user-specific constraints.\n - @return bool True if name is non-empty.\n- fn `public function toArray(): array` (L172-178)\n - @brief Serialize user to array.\n - @return array<string, mixed> User data array.\n\n### iface `interface Repo` (L187-207)\n- @brief Generic repository interface for data access patterns.\n- @brief Retrieve all entities.\n- @return iterable<BaseModel> Collection of models.\n\n### fn `public function findAll(): iterable` (L192-215)\n- @brief Retrieve all entities.\n- @brief Find a single entity by ID.\n- @param int $id Entity identifier.\n- @return iterable<BaseModel> Collection of models.\n- @return BaseModel|null The found entity or null.\n\n### fn `public function findById(int $id): ?BaseModel` (L199-215)\n- @brief Find a single entity by ID.\n- @brief Count entities matching a filter.\n- @param int $id Entity identifier.\n- @param array<string, mixed> $criteria Filter criteria.\n- @return BaseModel|null The found entity or null.\n- @return int Number of matching entities.\n\n### fn `public function count(array $criteria = []): int` (L206-215)\n- @brief Count entities matching a filter.\n- @param array<string, mixed> $criteria Filter criteria.\n- @return int Number of matching entities.\n\n### trait `trait Cacheable` (L215-241)\n- @brief Provides caching capabilities for models.\n- @brief Cache TTL in seconds.\n- fn `public function cache(): bool` (L223-226)\n - @brief Store the current object in cache.\n - @return bool True if caching succeeded.\n- fn `public function invalidateCache(): void` (L232-234)\n - @brief Invalidate the cached version of this object.\n - @return void\n\n### trait `trait SoftDeletable` (L247-266)\n- @brief Adds soft delete functionality to models.\n- @brief Timestamp of soft deletion or null if active.\n- fn `public function softDelete(): void` (L255-257)\n - @brief Mark the entity as soft-deleted.\n - @return void\n- fn `public function isDeleted(): bool` (L263-265)\n - @brief Check if the entity is currently deleted.\n - @return bool True if soft-deleted.\n\n### class `final class CachedUser extends User` (L275-286)\n- @brief User entity with caching and soft-delete capabilities.\n- fn `public function cacheKey(): string` (L283-285)\n - @brief Generate a unique cache key for this user.\n - @return string Cache key in format \"user:{id}\".\n\n### class `class Route` (L295-305)\n- @brief PHP attribute for annotating controller methods with routes.\n- @brief Define a route attribute.\n- @param string $path URL path pattern.\n- @param string $method HTTP method (GET, POST, etc.).\n- fn `public function __construct(` (L301-304)\n - @brief Define a route attribute.\n - @param string $path URL path pattern.\n - @param string $method HTTP method (GET, POST, etc.).\n\n### fn `function helper(): bool` (L314-316)\n- @brief Standalone helper returning a boolean result.\n- @return bool Always returns true.\n\n### fn `function processData(mixed $data): string` (L324-333)\n- @brief Process data using match expression for type dispatching.\n- @param mixed $data Input data of any type.\n- @return string Description of the processed data.\n\n### fn `function applyTransform(array $items, callable $fn): array` (L342-344)\n- @brief Higher-order function using arrow function syntax.\n- @param array<int> $items Array of integers.\n- @param callable(int): int $fn Transform function.\n- @return array<int> Transformed array.\n\n### fn `function createMultiplier(int $factor): \\Closure` (L352-355)\n- @brief Create a closure that multiplies its argument.\n- @param int $factor The multiplication factor.\n- @return \\Closure(int): int A multiplier closure.\n\n### fn `function readFileContent(string $path): string|false` (L363-368)\n- @brief Read file contents with comprehensive error handling.\n- @param string $path File system path.\n- @return string|false File contents or false on failure.\n\n### ns `namespace App\\Services` (L371-375)\n\n### ns `namespace App\\Http` (L372-375)\n\n### ns `namespace App\\Domain` (L373-375)\n\n### ns `namespace App\\Support` (L374-375)\n\n- iface `interface ServiceContract {}` (L375)\n- iface `interface CacheContract {}` (L376)\n- iface `interface LoggerContract {}` (L377)\n- iface `interface EventContract {}` (L378)\n- trait `trait HandlesEvents {}` (L379)\n- trait `trait TracksChanges {}` (L380)\n- trait `trait AuthorizesRequests {}` (L381)\n- const `const API_LIMIT = 50;` (L382)\n- const `const DEFAULT_PAGE = 1;` (L383)\n- const `const TIMEOUT = 30;` (L384)\n- class `final class ApiClient {}` (L385)\n- fn `function req_cover_php_1(int $value): int { return $value + 1; }` (L395)\n- @brief Coverage helper construct 1.\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n- @param value Input value for helper construct 1.\n- @return Output value for helper construct 1.\n- fn `function req_cover_php_2(int $value): int { return $value + 2; }` (L404)\n- @brief Coverage helper construct 2.\n- @details Provides deterministic fixture-level Doxygen coverage block 2.\n- @param value Input value for helper construct 2.\n- @return Output value for helper construct 2.\n- fn `function req_cover_php_3(int $value): int { return $value + 3; }` (L413)\n- @brief Coverage helper construct 3.\n- @details Provides deterministic fixture-level Doxygen coverage block 3.\n- @param value Input value for helper construct 3.\n- @return Output value for helper construct 3.\n- fn `function req_cover_php_4(int $value): int { return $value + 4; }` (L422)\n- @brief Coverage helper construct 4.\n- @details Provides deterministic fixture-level Doxygen coverage block 4.\n- @param value Input value for helper construct 4.\n- @return Output value for helper construct 4.\n- fn `function req_cover_php_5(int $value): int { return $value + 5; }` (L431)\n- @brief Coverage helper construct 5.\n- @details Provides deterministic fixture-level Doxygen coverage block 5.\n- @param value Input value for helper construct 5.\n- @return Output value for helper construct 5.\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`App\\Models`|ns||12-15||\n|`VERSION`|const||22||\n|`MAX_PER_PAGE`|const||25||\n|`isActive`|fn|pub|45-47|public function isActive(): bool|\n|`label`|fn|pub|53-59|public function label(): string|\n|`BaseModel`|class||69-111|abstract class BaseModel|\n|`BaseModel.__construct`|fn|pub|75-78|public function __construct(|\n|`BaseModel.save`|fn|pub|84-90|public function save(): bool|\n|`BaseModel.validateConstraints`|fn|priv|102-104|private static function validateConstraints(): bool|\n|`User`|class||120-179|final class User extends BaseModel|\n|`User.__construct`|fn|pub|133-141|public function __construct(|\n|`User.getName`|fn|pub|147-149|public function getName(): string|\n|`User.getIdentifier`|fn|pub|155-158|public function getIdentifier(): string|int|\n|`User.validate`|fn|prot|164-166|protected function validate(): bool|\n|`User.toArray`|fn|pub|172-178|public function toArray(): array|\n|`Repo`|iface||187-207|interface Repo|\n|`findAll`|fn|pub|192-215|public function findAll(): iterable|\n|`findById`|fn|pub|199-215|public function findById(int $id): ?BaseModel|\n|`count`|fn|pub|206-215|public function count(array $criteria = []): int|\n|`Cacheable`|trait||215-241|trait Cacheable|\n|`Cacheable.cache`|fn|pub|223-226|public function cache(): bool|\n|`Cacheable.invalidateCache`|fn|pub|232-234|public function invalidateCache(): void|\n|`SoftDeletable`|trait||247-266|trait SoftDeletable|\n|`SoftDeletable.softDelete`|fn|pub|255-257|public function softDelete(): void|\n|`SoftDeletable.isDeleted`|fn|pub|263-265|public function isDeleted(): bool|\n|`CachedUser`|class||275-286|final class CachedUser extends User|\n|`CachedUser.cacheKey`|fn|pub|283-285|public function cacheKey(): string|\n|`Route`|class||295-305|class Route|\n|`Route.__construct`|fn|pub|301-304|public function __construct(|\n|`helper`|fn||314-316|function helper(): bool|\n|`processData`|fn||324-333|function processData(mixed $data): string|\n|`applyTransform`|fn||342-344|function applyTransform(array $items, callable $fn): array|\n|`createMultiplier`|fn||352-355|function createMultiplier(int $factor): \\Closure|\n|`readFileContent`|fn||363-368|function readFileContent(string $path): string|false|\n|`App\\Services`|ns||371-375||\n|`App\\Http`|ns||372-375||\n|`App\\Domain`|ns||373-375||\n|`App\\Support`|ns||374-375||\n|`ServiceContract`|iface||375|interface ServiceContract {}|\n|`CacheContract`|iface||376|interface CacheContract {}|\n|`LoggerContract`|iface||377|interface LoggerContract {}|\n|`EventContract`|iface||378|interface EventContract {}|\n|`HandlesEvents`|trait||379|trait HandlesEvents {}|\n|`TracksChanges`|trait||380|trait TracksChanges {}|\n|`AuthorizesRequests`|trait||381|trait AuthorizesRequests {}|\n|`API_LIMIT`|const||382||\n|`DEFAULT_PAGE`|const||383||\n|`TIMEOUT`|const||384||\n|`ApiClient`|class||385|final class ApiClient {}|\n|`req_cover_php_1`|fn||395|function req_cover_php_1(int $value): int { return $value...|\n|`req_cover_php_2`|fn||404|function req_cover_php_2(int $value): int { return $value...|\n|`req_cover_php_3`|fn||413|function req_cover_php_3(int $value): int { return $value...|\n|`req_cover_php_4`|fn||422|function req_cover_php_4(int $value): int { return $value...|\n|`req_cover_php_5`|fn||431|function req_cover_php_5(int $value): int { return $value...|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_python.py | Python | 502L | 50 symbols | 8 imports | 90 comments\n> Path: `tests/fixtures/fixture_python.py`\n- @brief Comprehensive Python test fixture for parser validation.\n- @details Covers classes, protocols, decorators, generators, async functions, and rich Doxygen-tagged constructs used to validate extraction workflows and deterministic parser behavior.\n\n## Imports\n```\nimport asyncio #!< @brief Async IO support. @details Used for async test fixtures. # noqa: F401\nimport os #!< @brief OS interface module. @details Provides OS-dependent functionality. # noqa: F401\nimport sys #!< @brief System-specific parameters. @see sys.exit() for exit handling.\nfrom pathlib import Path #!< @brief Object-oriented filesystem paths. @note Preferred over os.path. # noqa: F401\nfrom typing import (\nfrom dataclasses import dataclass, field\nfrom abc import ABC, abstractmethod\nfrom contextlib import contextmanager\n```\n\n## Definitions\n\n- var `MAX_RETRIES = 3 #!< @brief Maximum retry attempts. @details Applied to network operations. @warning Tune per use case. @satisfies retry-policy` (L19)\n- @brief Maximum retry attempts.\n- @details Applied to network operations.\n- @warning Tune per use case.\n- @satisfies retry-policy\n- var `DEFAULT_TIMEOUT = 30.0 #!< @brief Default timeout in seconds. @note For I/O operations.` (L20)\n- @brief Default timeout in seconds.\n- @note For I/O operations.\n### class `class Config` `@dataclass(slots=True)` (L27-61)\n- @brief Stores key-value pairs with optional default fallback.\n- @details Dataclass-based configuration with validation.\n- @note Immutable after creation when frozen=True is used.\n- @see __post_init__() for validation logic.\n- fn `def get(self, key: str, default: str = \"\") -> str` (L39-51)\n - @brief Stores key-value pairs with optional default fallback.\n - @details Dataclass-based configuration with validation.\n - @param key The configuration key to look up.\n - @param default Fallback value if key is missing.\n - @return The configuration value or default.\n - @note Immutable after creation when frozen=True is used.\n - @see __post_init__() for validation logic.\n- fn `def __post_init__(self) -> None` `priv` (L52-61)\n - @brief Ensures name is non-empty and normalizes values. @raises ValueError If name is empty or whitespace.\n\n### class `class MyClass` (L62-167)\n- @brief Base class demonstrating various Python constructs.\n- @details Includes nested classes, properties, and static methods.\n- fn `def __init__(self, name: str, retries: int = MAX_RETRIES)` `priv` (L88-98)\n - @param name Identifier for this instance.\n - @param retries Maximum retry attempts; defaults to MAX_RETRIES.\n- fn `def name(self) -> str` (L100-106)\n - @return The name string set during initialization.\n- fn `def name(self, value: str) -> None` (L108-117)\n - @param value New name; must be non-empty. @raises ValueError If value is empty.\n- fn `def create_default() -> \"MyClass\"` (L119-125)\n - @return A new MyClass instance with name='default'.\n- fn `def from_dict(cls, data: dict) -> \"MyClass\"` (L127-138)\n - @param data Dictionary with 'name' and optional 'retries' keys.\n - @return A new instance populated from data. @raises KeyError If 'name' key is missing.\n- fn `def process(self, items: List[str], *, verbose: bool = False) -> Optional[str]` (L139-156)\n - @param items List of strings to process sequentially.\n - @param verbose Enable detailed logging when True.\n - @return The first valid item found or None if all are empty.\n- fn `def compute(self, x: int, y: int) -> int` (L157-167)\n - @param x First operand.\n - @param y Second operand.\n - @return Sum if both positive, difference otherwise.\n\n### class `class InnerHelper` (L69-87)\n- @brief Base class demonstrating various Python constructs.\n- @brief Handles auxiliary computations within MyClass scope.\n- @details Includes nested classes, properties, and static methods.\n- fn `def __init__(self, tag: str)` `priv` (L74-80)\n - @brief Handles auxiliary computations within MyClass scope.\n - @param tag Short label for categorization.\n- fn `def describe(self) -> str` (L81-87)\n - @return String combining class name and tag.\n\n### class `class AbstractProcessor(ABC)` : ABC (L168-196)\n- @brief Defines the interface that concrete processors must implement.\n- @details ABC-based interface with abstract methods.\n- @note Subclasses must implement execute() and execute_async().\n- @see ConcreteProcessor for a working implementation.\n- @sa ABC documentation for abstract base class patterns.\n- fn `def execute(self, data: bytes) -> bool` (L179-186)\n - @param data The raw input bytes to process.\n - @return True if processing succeeded, False otherwise.\n- fn `async def execute_async(self, data: bytes) -> bool` (L188-196)\n - @param data The raw input bytes to process.\n - @return True if processing succeeded.\n\n### class `class ConcreteProcessor(AbstractProcessor)` : AbstractProcessor (L197-231)\n- @brief Processes byte data by decoding and validating content.\n- @details Implements synchronous and async execute methods.\n- @note Thread-safe for read operations.\n- @see AbstractProcessor for interface definition.\n- fn `def execute(self, data: bytes) -> bool` (L206-222)\n - @brief Processes byte data by decoding and validating content.\n - @details Implements synchronous and async execute methods.\n - @param data Raw bytes, expected UTF-8 encoded text.\n - @return True if decoding and validation succeed. @raises UnicodeDecodeError Propagated if data is not valid UTF-8.\n - @note Thread-safe for read operations.\n - @see AbstractProcessor for interface definition.\n- fn `async def execute_async(self, data: bytes) -> bool` (L223-231)\n - @param data Raw bytes to process asynchronously.\n - @return True if valid content found.\n\n### class `class GenericContainer(Generic[T])` : Generic[T] (L232-271)\n- @brief Type-safe collection with iteration and lookup support.\n- @details Generic collection with find and iteration. @tparam T The element type stored in this container.\n- @note Implements __iter__ for iteration protocol.\n- @see typing.Generic for generics documentation.\n- fn `def __init__(self) -> None` `priv` (L242-245)\n - @brief Type-safe collection with iteration and lookup support.\n - @details Generic collection with find and iteration.\n@tparam T The element type stored in this container.\n - @note Implements __iter__ for iteration protocol.\n - @see typing.Generic for generics documentation.\n- fn `def add(self, item: T) -> None` (L246-252)\n - @param item Element of type T to add.\n- fn `def __iter__(self) -> Iterator[T]` `priv` (L253-259)\n - @return Iterator yielding items of type T.\n- fn `def find(self, predicate) -> Optional[T]` (L260-271)\n - @param predicate Callable accepting T and returning bool.\n - @return The first matching item or None.\n\n### class `class Renderable(Protocol)` : Protocol (L272-285)\n- @brief Structural typing interface for render-capable objects.\n- fn `def render(self) -> str` (L278-285)\n - @brief Structural typing interface for render-capable objects.\n - @return Rendered string output.\n\n### fn `def regular_function(x: int) -> int` `@property # type: ignore[arg-type] #!< @brief Property decorator. @details Converts function to property.` (L287-295)\n- @param x Input integer value.\n- @return The input value unchanged.\n\n### fn `def function_with_walrus(data: List[int]) -> Optional[int]` (L296-307)\n- @param data List of integers to scan.\n- @return The first value greater than 10, or None.\n\n### fn `def multi_return_paths(value: int) -> Union[str, int, None]` (L308-325)\n- @param value Integer selector for branching logic.\n- @return A string, integer, or None depending on value.\n\n### fn `def generator_function(limit: int) -> Iterator[int]` (L326-336)\n- @param limit Upper bound (exclusive) for generation. @yield Squared integers from 0 to limit-1.\n\n### fn `async def async_generator(items: List[str]) -> AsyncIterator[str]` (L337-347)\n- @param items Source strings to process. @yield Upper-cased non-empty strings.\n\n### fn `def managed_resource(path: str)` `@contextmanager #!< @brief Context manager decorator. @see contextlib.contextmanager` (L349-362)\n- @param path File system path to the resource. @yield The opened file handle. @raises IOError If the resource cannot be opened.\n\n### fn `def closure_factory(multiplier: int)` (L363-379)\n- @param multiplier The fixed multiplier for the returned function.\n- @return A callable that multiplies input by multiplier.\n\n### fn `def inner(x: int) -> int` (L369-376)\n- @param multiplier The fixed multiplier for the returned function.\n- @param x Value to multiply.\n- @return A callable that multiplies input by multiplier.\n- @return Product of x and the captured multiplier.\n\n### fn `def uses_unpacking(*args: int, **kwargs: str) -> Dict[str, Union[int, str]]` (L380-393)\n- @param args Positional integer arguments.\n- @param kwargs Named string arguments.\n- @return Combined dictionary of all arguments.\n\n- var `EVEN_SQUARES = [x ** 2 for x in range(20) if x % 2 == 0]` (L398)\n### fn `async def async_function()` (L401-408)\n- @brief Minimal async function for testing async detection.\n\n### fn `def deeply_nested_logic(matrix: List[List[int]]) -> int` (L409-429)\n- @param matrix 2D list of integers.\n- @return Cumulative sum of positive even values.\n\n### fn `def exception_handling_example(path: str) -> Optional[str]` (L430-453)\n- @param path File path to attempt reading.\n- @return File contents or None on failure.\n\n- var `MAX_BATCH = 64 # inline extension comment` (L455)\n- var `CACHE_LIMIT = 128` (L457)\n- var `MAX_USERS = 500` (L459)\n### fn `def req_cover_py_1(value: int) -> int` (L467-469)\n- @brief Coverage helper construct 1.\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n- @param value Input value for helper construct 1.\n- @return Output value for helper construct 1.\n\n### fn `def req_cover_py_2(value: int) -> int` (L475-477)\n- @brief Coverage helper construct 2.\n- @details Provides deterministic fixture-level Doxygen coverage block 2.\n- @param value Input value for helper construct 2.\n- @return Output value for helper construct 2.\n\n### fn `def req_cover_py_3(value: int) -> int` (L483-485)\n- @brief Coverage helper construct 3.\n- @details Provides deterministic fixture-level Doxygen coverage block 3.\n- @param value Input value for helper construct 3.\n- @return Output value for helper construct 3.\n\n### fn `def req_cover_py_4(value: int) -> int` (L491-493)\n- @brief Coverage helper construct 4.\n- @details Provides deterministic fixture-level Doxygen coverage block 4.\n- @param value Input value for helper construct 4.\n- @return Output value for helper construct 4.\n\n### fn `def req_cover_py_5(value: int) -> int` (L499-501)\n- @brief Coverage helper construct 5.\n- @details Provides deterministic fixture-level Doxygen coverage block 5.\n- @param value Input value for helper construct 5.\n- @return Output value for helper construct 5.\n\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`MAX_RETRIES`|var|pub|19||\n|`DEFAULT_TIMEOUT`|var|pub|20||\n|`Config`|class|pub|27-61|class Config|\n|`Config.get`|fn|pub|39-51|def get(self, key: str, default: str = \"\") -> str|\n|`Config.__post_init__`|fn|priv|52-61|def __post_init__(self) -> None|\n|`MyClass`|class|pub|62-167|class MyClass|\n|`InnerHelper`|class|pub|69-87|class InnerHelper|\n|`InnerHelper.__init__`|fn|priv|74-80|def __init__(self, tag: str)|\n|`InnerHelper.describe`|fn|pub|81-87|def describe(self) -> str|\n|`MyClass.__init__`|fn|priv|88-98|def __init__(self, name: str, retries: int = MAX_RETRIES)|\n|`MyClass.name`|fn|pub|100-106|def name(self) -> str|\n|`MyClass.name`|fn|pub|108-117|def name(self, value: str) -> None|\n|`MyClass.create_default`|fn|pub|119-125|def create_default() -> \"MyClass\"|\n|`MyClass.from_dict`|fn|pub|127-138|def from_dict(cls, data: dict) -> \"MyClass\"|\n|`MyClass.process`|fn|pub|139-156|def process(self, items: List[str], *, verbose: bool = Fa...|\n|`MyClass.compute`|fn|pub|157-167|def compute(self, x: int, y: int) -> int|\n|`AbstractProcessor`|class|pub|168-196|class AbstractProcessor(ABC)|\n|`AbstractProcessor.execute`|fn|pub|179-186|def execute(self, data: bytes) -> bool|\n|`AbstractProcessor.execute_async`|fn|pub|188-196|async def execute_async(self, data: bytes) -> bool|\n|`ConcreteProcessor`|class|pub|197-231|class ConcreteProcessor(AbstractProcessor)|\n|`ConcreteProcessor.execute`|fn|pub|206-222|def execute(self, data: bytes) -> bool|\n|`ConcreteProcessor.execute_async`|fn|pub|223-231|async def execute_async(self, data: bytes) -> bool|\n|`GenericContainer`|class|pub|232-271|class GenericContainer(Generic[T])|\n|`GenericContainer.__init__`|fn|priv|242-245|def __init__(self) -> None|\n|`GenericContainer.add`|fn|pub|246-252|def add(self, item: T) -> None|\n|`GenericContainer.__iter__`|fn|priv|253-259|def __iter__(self) -> Iterator[T]|\n|`GenericContainer.find`|fn|pub|260-271|def find(self, predicate) -> Optional[T]|\n|`Renderable`|class|pub|272-285|class Renderable(Protocol)|\n|`Renderable.render`|fn|pub|278-285|def render(self) -> str|\n|`regular_function`|fn|pub|287-295|def regular_function(x: int) -> int|\n|`function_with_walrus`|fn|pub|296-307|def function_with_walrus(data: List[int]) -> Optional[int]|\n|`multi_return_paths`|fn|pub|308-325|def multi_return_paths(value: int) -> Union[str, int, None]|\n|`generator_function`|fn|pub|326-336|def generator_function(limit: int) -> Iterator[int]|\n|`async_generator`|fn|pub|337-347|async def async_generator(items: List[str]) -> AsyncItera...|\n|`managed_resource`|fn|pub|349-362|def managed_resource(path: str)|\n|`closure_factory`|fn|pub|363-379|def closure_factory(multiplier: int)|\n|`inner`|fn|pub|369-376|def inner(x: int) -> int|\n|`uses_unpacking`|fn|pub|380-393|def uses_unpacking(*args: int, **kwargs: str) -> Dict[str...|\n|`EVEN_SQUARES`|var|pub|398||\n|`async_function`|fn|pub|401-408|async def async_function()|\n|`deeply_nested_logic`|fn|pub|409-429|def deeply_nested_logic(matrix: List[List[int]]) -> int|\n|`exception_handling_example`|fn|pub|430-453|def exception_handling_example(path: str) -> Optional[str]|\n|`MAX_BATCH`|var|pub|455||\n|`CACHE_LIMIT`|var|pub|457||\n|`MAX_USERS`|var|pub|459||\n|`req_cover_py_1`|fn|pub|467-469|def req_cover_py_1(value: int) -> int|\n|`req_cover_py_2`|fn|pub|475-477|def req_cover_py_2(value: int) -> int|\n|`req_cover_py_3`|fn|pub|483-485|def req_cover_py_3(value: int) -> int|\n|`req_cover_py_4`|fn|pub|491-493|def req_cover_py_4(value: int) -> int|\n|`req_cover_py_5`|fn|pub|499-501|def req_cover_py_5(value: int) -> int|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_ruby.rb | Ruby | 345L | 40 symbols | 5 imports | 135 comments\n> Path: `tests/fixtures/fixture_ruby.rb`\n\n## Imports\n```\nrequire 'json'\nrequire 'set'\nrequire_relative 'helper'\nrequire 'yaml'\nrequire 'logger'\n```\n\n## Definitions\n\n- const `MAX_RETRIES = 42` (L15)\n- @brief Maximum retry attempts for transient failures.\n- const `DEFAULT_ENCODING = 'utf-8'.freeze` (L18)\n- @brief Frozen string constant for default encoding.\n### mod `module Loggable` (L26-39)\n- @brief Mixin providing logging capabilities to including classes.\n- @brief Log a message to stdout with the class name prefix.\n- @param message [String] The message to log.\n- fn `def log(message)` (L29-31)\n - @brief Log a message to stdout with the class name prefix.\n - @param message [String] The message to log.\n- fn `def log_error(error)` (L35-38)\n - @brief Log an error with backtrace information.\n - @param error [Exception] The exception to log.\n\n### class `class MyClass` (L47-153)\n- fn `def initialize(name, **options)` (L60-66)\n - @brief Initialize a new MyClass instance.\n - @param name [String] The instance identifier.\n - @param options [Hash] Optional configuration hash.\n- fn `def self.create(attrs)` (L71-73)\n - @brief Factory method creating an instance from a hash.\n - @param attrs [Hash] Attribute hash with :name key required.\n - @return [MyClass] A new instance populated from attrs.\n- fn `def self.bulk_create(names)` (L78-80)\n - @brief Build multiple instances from an array of names.\n - @param names [Array<String>] Names to create instances for.\n - @return [Array<MyClass>] Array of new instances.\n- fn `def valid?` (L84-86)\n - @brief Predicate checking if the instance is valid.\n - @return [Boolean] True if name is non-empty.\n- fn `def matches?(pattern)` (L91-94)\n - @brief Check if name matches a pattern.\n - @param pattern [Regexp] Regular expression to test against.\n - @return [Boolean] True if name matches the pattern.\n- fn `def to_s` (L112-114)\n - @brief Convert to string representation.\n - @return [String] Human-readable description.\n- fn `def method_missing(method, *args, &block)` (L121-128)\n- fn `def respond_to_missing?(method, include_private = false)` (L134-136)\n - @brief Declare which dynamic methods respond_to? should recognize.\n - @param method [Symbol] The method name to check.\n - @param include_private [Boolean] Whether to include private methods.\n - @return [Boolean] True if the method is handled dynamically.\n- fn `def internal_config` (L142-144)\n - @brief Protected helper for internal computations.\n - @return [Hash] Current options hash.\n- fn `def validate!` (L150-152)\n\n### class `class SpecialClass < MyClass` : MyClass (L160-174)\n- @brief Specialized subclass with additional behavior.\n- @brief Initialize with a priority level.\n- @param name [String] Instance name.\n- @param priority [Integer] Processing priority (lower = first).\n- fn `def initialize(name, priority: 0, **options)` (L164-167)\n - @brief Initialize with a priority level.\n - @param name [String] Instance name.\n - @param priority [Integer] Processing priority (lower = first).\n- fn `def to_s` (L171-173)\n - @brief Override to_s with priority information.\n - @return [String] Description including priority.\n\n### mod `module MyModule` (L180-207)\n- @brief Utility module providing helper methods.\n- @brief Module-level helper returning a boolean.\n- @return [Boolean] Always returns true.\n- fn `def helper` (L183-185)\n - @brief Module-level helper returning a boolean.\n - @return [Boolean] Always returns true.\n- fn `def process_with_block(data)` (L191-197)\n - @brief Process data with block yield pattern.\n - @param data [Object] Data to process.\n@yield [Object] Yields data for caller-defined processing.\n - @return [Object] The block's return value or data itself.\n- fn `def self.format_list(items)` (L204-206)\n - @brief Utility function accessible without mixing in.\n - @param items [Array] Items to format.\n - @return [String] Comma-separated formatted string.\n\n### fn `def distance_from_origin` (L216-218)\n- @brief Compute the Euclidean distance from origin.\n- @return [Float] Distance from (0, 0).\n\n### class `class DynamicModel` (L225-238)\n- @brief Demonstrates metaprogramming with define_method.\n- @brief Dynamically defined getter for #{field}.\n\n### fn `def with_retry(attempts: MAX_RETRIES)` (L255-268)\n\n### mod `module StringExtensions` (L274-282)\n- @brief Refinement adding utility methods to String.\n- @brief Check if the string is a valid email address.\n- @return [Boolean] True if string matches email pattern.\n- fn `def email?` (L278-280)\n - @brief Check if the string is a valid email address.\n - @return [Boolean] True if string matches email pattern.\n\n### class `class ServiceObject; end # inline class comment` (L287-307)\n\n### class `class ReportBuilder; end` (L288-307)\n\n### mod `module Metrics; end` (L289-307)\n\n### mod `module Extras; end` (L290-307)\n- const `MAX_LIMIT = 100` (L291)\n- const `API_VERSION = \"v2\"` (L292)\n- const `CACHE_SIZE = 1024` (L293)\n- fn `def req_cover_ruby_1(value)` (L305-307)\n - @brief Coverage helper construct 1.\n - @details Provides deterministic fixture-level Doxygen coverage block 1.\n - @param value Input value for helper construct 1.\n - @return Output value for helper construct 1.\n\n### fn `def req_cover_ruby_2(value)` (L314-316)\n- @brief Coverage helper construct 2.\n- @details Provides deterministic fixture-level Doxygen coverage block 2.\n- @param value Input value for helper construct 2.\n- @return Output value for helper construct 2.\n\n### fn `def req_cover_ruby_3(value)` (L323-325)\n- @brief Coverage helper construct 3.\n- @details Provides deterministic fixture-level Doxygen coverage block 3.\n- @param value Input value for helper construct 3.\n- @return Output value for helper construct 3.\n\n### fn `def req_cover_ruby_4(value)` (L332-334)\n- @brief Coverage helper construct 4.\n- @details Provides deterministic fixture-level Doxygen coverage block 4.\n- @param value Input value for helper construct 4.\n- @return Output value for helper construct 4.\n\n### fn `def req_cover_ruby_5(value)` (L341-343)\n- @brief Coverage helper construct 5.\n- @details Provides deterministic fixture-level Doxygen coverage block 5.\n- @param value Input value for helper construct 5.\n- @return Output value for helper construct 5.\n\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`MAX_RETRIES`|const||15||\n|`DEFAULT_ENCODING`|const||18||\n|`Loggable`|mod||26-39||\n|`Loggable.log`|fn||29-31|def log(message)|\n|`Loggable.log_error`|fn||35-38|def log_error(error)|\n|`MyClass`|class||47-153|class MyClass|\n|`MyClass.initialize`|fn||60-66|def initialize(name, **options)|\n|`MyClass.create`|fn||71-73|def self.create(attrs)|\n|`MyClass.bulk_create`|fn||78-80|def self.bulk_create(names)|\n|`MyClass.valid?`|fn||84-86|def valid?|\n|`MyClass.matches?`|fn||91-94|def matches?(pattern)|\n|`MyClass.to_s`|fn||112-114|def to_s|\n|`MyClass.method_missing`|fn||121-128|def method_missing(method, *args, &block)|\n|`MyClass.respond_to_missing?`|fn||134-136|def respond_to_missing?(method, include_private = false)|\n|`MyClass.internal_config`|fn||142-144|def internal_config|\n|`MyClass.validate!`|fn||150-152|def validate!|\n|`SpecialClass`|class||160-174|class SpecialClass < MyClass|\n|`SpecialClass.initialize`|fn||164-167|def initialize(name, priority: 0, **options)|\n|`SpecialClass.to_s`|fn||171-173|def to_s|\n|`MyModule`|mod||180-207||\n|`MyModule.helper`|fn||183-185|def helper|\n|`MyModule.process_with_block`|fn||191-197|def process_with_block(data)|\n|`MyModule.format_list`|fn||204-206|def self.format_list(items)|\n|`distance_from_origin`|fn||216-218|def distance_from_origin|\n|`DynamicModel`|class||225-238|class DynamicModel|\n|`with_retry`|fn||255-268|def with_retry(attempts: MAX_RETRIES)|\n|`StringExtensions`|mod||274-282||\n|`StringExtensions.email?`|fn||278-280|def email?|\n|`ServiceObject`|class||287-307|class ServiceObject; end # inline class comment|\n|`ReportBuilder`|class||288-307|class ReportBuilder; end|\n|`Metrics`|mod||289-307||\n|`Extras`|mod||290-307||\n|`Extras.MAX_LIMIT`|const||291||\n|`Extras.API_VERSION`|const||292||\n|`Extras.CACHE_SIZE`|const||293||\n|`Extras.req_cover_ruby_1`|fn||305-307|def req_cover_ruby_1(value)|\n|`req_cover_ruby_2`|fn||314-316|def req_cover_ruby_2(value)|\n|`req_cover_ruby_3`|fn||323-325|def req_cover_ruby_3(value)|\n|`req_cover_ruby_4`|fn||332-334|def req_cover_ruby_4(value)|\n|`req_cover_ruby_5`|fn||341-343|def req_cover_ruby_5(value)|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_rust.rs | Rust | 380L | 65 symbols | 5 imports | 158 comments\n> Path: `tests/fixtures/fixture_rust.rs`\n\n## Imports\n```\nuse std::io;\nuse std::collections::HashMap;\nuse std::fmt::{self, Display, Formatter};\nuse std::sync::{Arc, Mutex};\nuse std::time::Duration;\n```\n\n## Definitions\n\n### struct `pub struct MyStruct` `#[derive(Debug, Clone, PartialEq)]` (L20-23)\n- @brief Primary integer field.\n\n### struct `pub struct BorrowedData<'a>` `#[derive(Debug)]` (L30-35)\n- @brief Reference to externally-owned string data.\n- @brief Numeric tag for identification.\n\n### struct `pub struct TypedMap<K: std::hash::Hash + Eq, V: Clone>` (L41-44)\n- @brief Internal hash map storage.\n\n### enum `pub enum MyEnum` (L51-58)\n- @brief Represents either structured data, a simple flag, or a pair.\n- @brief Unit variant carrying no data.\n- @brief Tuple variant holding a string payload.\n\n### trait `pub trait MyTrait` (L65-79)\n- @brief Implementors must provide both sync and optional async execution.\n- fn `fn do_work(&self)` `priv` (L67-78)\n- fn `fn do_work_with_ctx(&self, ctx: &str) -> bool` `priv` (L73-78)\n - @param ctx Contextual string passed to the implementation.\n - @return True if work completed successfully.\n\n### trait `pub trait Parser<'a>` (L85-94)\n- @brief The output type produced by parsing.\n- type `type Output` `priv` (L87)\n - @brief The output type produced by parsing.\n\n### fn `fn parse(&self, input: &'a [u8]) -> Result<Self::Output, io::Error>` `priv` (L93-96)\n- @param input Byte slice to parse.\n- @return Parsed output or an IO error.\n\n### impl `impl MyStruct` `priv` (L96-132)\n- @return A MyStruct with field initialized to 0.\n- fn `fn new() -> Self` `priv` (L100-102)\n - @return A MyStruct with field initialized to 0.\n- fn `pub fn with_value(val: i32) -> Self` (L108-110)\n - @param val The initial field value.\n - @return A new MyStruct.\n- fn `pub fn value(&self) -> i32` (L115-117)\n - @return The stored integer.\n- fn `pub fn try_update(&mut self, new_val: i32) -> Option<i32>` (L123-131)\n - @param new_val New value to set.\n - @return Old value if updated, None if new_val equals current.\n\n### impl `impl MyTrait for MyStruct` `priv` (L134-139)\n- fn `fn do_work(&self)` `priv` (L136-138)\n\n### impl `impl Display for MyStruct` `priv` (L141-149)\n- @param f Formatter to write into.\n- fn `fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result` `priv` (L146-148)\n - @param f Formatter to write into.\n - @return fmt::Result indicating success or failure.\n\n### impl `impl<K, V> TypedMap<K, V>` `priv` (L153-177)\n- fn `pub fn insert(&mut self, key: K, value: V) -> Option<V>` (L163-165)\n - @param key The lookup key.\n - @param value The value to associate with the key.\n - @return Previous value for this key, or None.\n- fn `pub fn get_or_default(&self, key: &K) -> V` (L171-176)\n - @param key The key to look up.\n - @return Cloned value if found, or the default for V.\n\n### mod `pub mod my_module` (L182-189)\n- @brief Sub-module containing utility helpers.\n- @brief Inline module with pub(crate) scoped items.\n\n### mod `pub(crate) mod internal` (L185-189)\n- @brief Inline module with pub(crate) scoped items.\n- const `pub(crate) static COUNTER: std::sync::atomic::AtomicUsize =` (L187)\n\n- macro `macro_rules! hashmap {` `priv` (L196)\n- @brief Usage: `hashmap!{ \"a\" => 1, \"b\" => 2 }`.\n- macro `macro_rules! my_macro {` `priv` (L205)\n- const `const MY_CONST: i32 = 42;` `priv` (L217)\n- @brief Compile-time constant for maximum retry attempts.\n- const `static MY_STATIC: i32 = 0;` `priv` (L220)\n- @brief Mutable static requiring unsafe access.\n- const `static CONFIG: std::sync::LazyLock<HashMap<String, String>> =` `priv` (L223)\n- @brief Thread-safe lazy-initialized global configuration.\n- type `pub type IoResult<T> = Result<T, io::Error>;` (L229)\n- @brief Alias for a common Result type with IO errors.\n- type `pub type MyAlias = i32;` (L232)\n- @brief Simple integer alias.\n### fn `pub fn my_function(input: Option<&str>) -> String` (L240-249)\n- @param input Optional string to evaluate.\n- @return Processed string or a fallback default.\n\n### fn `pub async fn async_function() -> String` (L254-257)\n- @return A greeting string after async computation.\n\n### fn `pub fn filter_with<F>(items: &[i32], predicate: F) -> Vec<i32>` (L264-269)\n- @param items Slice of integers to filter.\n- @param predicate Closure returning true for items to keep.\n- @return Vector of items passing the predicate.\n\n### fn `pub fn create_worker(use_struct: bool) -> Box<dyn MyTrait>` (L275-281)\n- @param use_struct If true, returns MyStruct; otherwise panics.\n- @return A heap-allocated trait object implementing MyTrait.\n\n### fn `pub unsafe fn read_raw(ptr: *const i32) -> i32` (L288-291)\n- @param ptr Raw pointer to an i32 value.\n- @return The value pointed to by ptr.\n- @sa fety Caller must ensure ptr is valid and aligned.\n\n### fn `pub extern \"C\" fn ffi_double(x: i32) -> i32` (L297-299)\n- @param x Integer to double.\n- @return The input multiplied by 2.\n\n### fn `pub fn describe_enum(val: &MyEnum) -> String` (L305-315)\n- @param val An enum variant to match against.\n- @return A description string for the matched variant.\n\n- mod `pub mod ext_tools { pub fn id() -> i32 { 1 } }` (L319)\n- mod `mod ext_local { pub fn ping() -> i32 { 2 } }` `priv` (L320)\n- mod `pub mod ext_api { pub fn pong() -> i32 { 3 } }` (L321)\n- enum `pub enum Status { Ready, Busy }` (L325)\n- enum `pub enum Mode { Alpha, Beta }` (L326)\n- enum `pub enum Signal { On, Off }` (L327)\n- enum `pub enum ErrorKind { Io, Parse }` (L328)\n- struct `pub struct ExtraNode { pub id: i32 }` (L329)\n- struct `struct InnerNode { id: i32 }` `priv` (L330)\n- trait `pub trait Inspectable { fn inspect(&self) -> i32; }` (L331)\n- trait `trait Named { fn name(&self) -> &'static str; }` `priv` (L332)\n- trait `pub trait Executable { fn exec(&self) -> i32; }` (L333)\n- impl `impl Inspectable for ExtraNode { fn inspect(&self) -> i32 { self.id } }` `priv` (L334)\n- impl `impl Named for InnerNode { fn name(&self) -> &'static str { \"inner\" } }` `priv` (L335)\n- impl `impl Executable for MyEnum { fn exec(&self) -> i32 { 1 } }` `priv` (L336)\n- macro `macro_rules! ext_macro { () => { 42 } }` `priv` (L337)\n- macro `macro_rules! trace_macro { ($v:expr) => { $v }; }` `priv` (L338)\n- macro `macro_rules! build_pair { ($a:expr,$b:expr) => { ($a,$b) }; }` `priv` (L339)\n- const `pub const LIMIT: usize = 8;` (L340)\n- type `pub type ItemId = u64;` (L341)\n- type `type AliasValue = i32;` `priv` (L342)\n- fn `fn req_cover_rust_1(value: i32) -> i32 { value + 1 }` `priv` (L350)\n- @brief Coverage helper construct 1.\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n- @param value Input value for helper construct 1.\n- @return Output value for helper construct 1.\n- fn `fn req_cover_rust_2(value: i32) -> i32 { value + 2 }` `priv` (L357)\n- @brief Coverage helper construct 2.\n- @details Provides deterministic fixture-level Doxygen coverage block 2.\n- @param value Input value for helper construct 2.\n- @return Output value for helper construct 2.\n- fn `fn req_cover_rust_3(value: i32) -> i32 { value + 3 }` `priv` (L364)\n- @brief Coverage helper construct 3.\n- @details Provides deterministic fixture-level Doxygen coverage block 3.\n- @param value Input value for helper construct 3.\n- @return Output value for helper construct 3.\n- fn `fn req_cover_rust_4(value: i32) -> i32 { value + 4 }` `priv` (L371)\n- @brief Coverage helper construct 4.\n- @details Provides deterministic fixture-level Doxygen coverage block 4.\n- @param value Input value for helper construct 4.\n- @return Output value for helper construct 4.\n- fn `fn req_cover_rust_5(value: i32) -> i32 { value + 5 }` `priv` (L378)\n- @brief Coverage helper construct 5.\n- @details Provides deterministic fixture-level Doxygen coverage block 5.\n- @param value Input value for helper construct 5.\n- @return Output value for helper construct 5.\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`MyStruct`|struct|pub|20-23|pub struct MyStruct|\n|`BorrowedData`|struct|pub|30-35|pub struct BorrowedData<'a>|\n|`TypedMap`|struct|pub|41-44|pub struct TypedMap<K: std::hash::Hash + Eq, V: Clone>|\n|`MyEnum`|enum|pub|51-58|pub enum MyEnum|\n|`MyTrait`|trait|pub|65-79|pub trait MyTrait|\n|`MyTrait.do_work`|fn|priv|67-78|fn do_work(&self)|\n|`MyTrait.do_work_with_ctx`|fn|priv|73-78|fn do_work_with_ctx(&self, ctx: &str) -> bool|\n|`Parser`|trait|pub|85-94|pub trait Parser<'a>|\n|`Parser.Output`|type|priv|87||\n|`parse`|fn|priv|93-96|fn parse(&self, input: &'a [u8]) -> Result<Self::Output, ...|\n|`MyStruct`|impl|priv|96-132|impl MyStruct|\n|`MyStruct.new`|fn|priv|100-102|fn new() -> Self|\n|`MyStruct.with_value`|fn|pub|108-110|pub fn with_value(val: i32) -> Self|\n|`MyStruct.value`|fn|pub|115-117|pub fn value(&self) -> i32|\n|`MyStruct.try_update`|fn|pub|123-131|pub fn try_update(&mut self, new_val: i32) -> Option<i32>|\n|`MyStruct`|impl|priv|134-139|impl MyTrait for MyStruct|\n|`MyStruct.do_work`|fn|priv|136-138|fn do_work(&self)|\n|`MyStruct`|impl|priv|141-149|impl Display for MyStruct|\n|`MyStruct.fmt`|fn|priv|146-148|fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result|\n|`TypedMap`|impl|priv|153-177|impl<K, V> TypedMap<K, V>|\n|`TypedMap.insert`|fn|pub|163-165|pub fn insert(&mut self, key: K, value: V) -> Option<V>|\n|`TypedMap.get_or_default`|fn|pub|171-176|pub fn get_or_default(&self, key: &K) -> V|\n|`my_module`|mod|pub|182-189||\n|`internal`|mod|pub|185-189||\n|`internal.COUNTER`|const|pub|187||\n|`hashmap`|macro|priv|196||\n|`my_macro`|macro|priv|205||\n|`MY_CONST`|const|priv|217||\n|`MY_STATIC`|const|priv|220||\n|`CONFIG`|const|priv|223||\n|`IoResult`|type|pub|229||\n|`MyAlias`|type|pub|232||\n|`my_function`|fn|pub|240-249|pub fn my_function(input: Option<&str>) -> String|\n|`async_function`|fn|pub|254-257|pub async fn async_function() -> String|\n|`filter_with`|fn|pub|264-269|pub fn filter_with<F>(items: &[i32], predicate: F) -> Vec...|\n|`create_worker`|fn|pub|275-281|pub fn create_worker(use_struct: bool) -> Box<dyn MyTrait>|\n|`read_raw`|fn|pub|288-291|pub unsafe fn read_raw(ptr: *const i32) -> i32|\n|`ffi_double`|fn|pub|297-299|pub extern \"C\" fn ffi_double(x: i32) -> i32|\n|`describe_enum`|fn|pub|305-315|pub fn describe_enum(val: &MyEnum) -> String|\n|`ext_tools`|mod|pub|319||\n|`ext_local`|mod|priv|320||\n|`ext_api`|mod|pub|321||\n|`Status`|enum|pub|325|pub enum Status { Ready, Busy }|\n|`Mode`|enum|pub|326|pub enum Mode { Alpha, Beta }|\n|`Signal`|enum|pub|327|pub enum Signal { On, Off }|\n|`ErrorKind`|enum|pub|328|pub enum ErrorKind { Io, Parse }|\n|`ExtraNode`|struct|pub|329|pub struct ExtraNode { pub id: i32 }|\n|`InnerNode`|struct|priv|330|struct InnerNode { id: i32 }|\n|`Inspectable`|trait|pub|331|pub trait Inspectable { fn inspect(&self) -> i32; }|\n|`Named`|trait|priv|332|trait Named { fn name(&self) -> &'static str; }|\n|`Executable`|trait|pub|333|pub trait Executable { fn exec(&self) -> i32; }|\n|`ExtraNode`|impl|priv|334|impl Inspectable for ExtraNode { fn inspect(&self) -> i32...|\n|`InnerNode`|impl|priv|335|impl Named for InnerNode { fn name(&self) -> &'static str...|\n|`MyEnum`|impl|priv|336|impl Executable for MyEnum { fn exec(&self) -> i32 { 1 } }|\n|`ext_macro`|macro|priv|337||\n|`trace_macro`|macro|priv|338||\n|`build_pair`|macro|priv|339||\n|`LIMIT`|const|pub|340||\n|`ItemId`|type|pub|341||\n|`AliasValue`|type|priv|342||\n|`req_cover_rust_1`|fn|priv|350|fn req_cover_rust_1(value: i32) -> i32 { value + 1 }|\n|`req_cover_rust_2`|fn|priv|357|fn req_cover_rust_2(value: i32) -> i32 { value + 2 }|\n|`req_cover_rust_3`|fn|priv|364|fn req_cover_rust_3(value: i32) -> i32 { value + 3 }|\n|`req_cover_rust_4`|fn|priv|371|fn req_cover_rust_4(value: i32) -> i32 { value + 4 }|\n|`req_cover_rust_5`|fn|priv|378|fn req_cover_rust_5(value: i32) -> i32 { value + 5 }|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_scala.scala | Scala | 398L | 62 symbols | 5 imports | 64 comments\n> Path: `tests/fixtures/fixture_scala.scala`\n- @brief Comprehensive Scala test fixture for parser validation.\n- @details Covers implicits/givens, pattern matching, higher-kinded types,\nself-types, variance, opaque types, extension methods, enums,\nfor comprehensions, and cake pattern.\n\n## Imports\n```\nimport scala.collection.mutable\nimport scala.concurrent.{Future, ExecutionContext}\nimport scala.util.{Try, Success, Failure}\nimport scala.util.Random\nimport scala.concurrent.duration._\n```\n\n## Definitions\n\n### class `case class Person(name: String, age: Int)` (L23-35)\n- @brief Immutable data class for person entities.\n- @brief Check if the person is an adult.\n- @param name Display name.\n- @param age Age in years; must be non-negative.\n- @return True if age >= 18.\n\n### fn `def isAdult: Boolean = age >= 18` (L28-43)\n- @brief Check if the person is an adult.\n- @brief Create a greeting string.\n- @return True if age >= 18.\n- @return Formatted greeting including name and age.\n\n### fn `def greet: String = s\"Hi, I'm $name, age $age\"` (L34-43)\n- @brief Create a greeting string.\n- @return Formatted greeting including name and age.\n\n### fn `def area: Double` (L48-56)\n- @brief Compute the area of this shape.\n- @brief Circle shape with radius.\n- @param radius The circle's radius.\n- @return Area as a Double.\n\n### class `case class Circle(radius: Double) extends Shape` (L56-58)\n- @brief Circle shape with radius.\n- @param radius The circle's radius.\n\n### fn `override def area: Double = math.Pi * radius * radius` (L57-66)\n- @brief Rectangle shape with width and height.\n- @param width The rectangle's width.\n- @param height The rectangle's height.\n\n### class `case class Rectangle(width: Double, height: Double) extends Shape` (L66-68)\n- @brief Rectangle shape with width and height.\n- @param width The rectangle's width.\n- @param height The rectangle's height.\n\n### fn `override def area: Double = width * height` (L67-76)\n\n### class `abstract class Animal` (L76-88)\n- @brief Abstract base class for animals with sound production.\n- @brief The sound this animal makes.\n- @return Sound description string.\n- fn `def sound: String` (L81-87)\n - @brief The sound this animal makes.\n - @brief Describe the animal including its sound.\n - @return Sound description string.\n - @return Formatted description string.\n- fn `def describe: String = s\"I am a ${getClass.getSimpleName} and I say $sound\"` (L87)\n - @brief Describe the animal including its sound.\n - @return Formatted description string.\n\n### trait `trait Drawable` (L96-102)\n- @brief Trait for rendering objects to string representation.\n- @brief Draw the object as a string.\n- @return Rendered string representation.\n\n### fn `def draw(): Unit` (L101-109)\n- @brief Draw the object as a string.\n- @brief Self-type trait requiring Drawable to be mixed in.\n- @details Demonstrates the cake pattern for dependency injection.\n- @return Rendered string representation.\n\n### trait `trait Logging { self: Drawable =>` (L109-117)\n- @brief Self-type trait requiring Drawable to be mixed in.\n- @brief Log the drawing operation and then draw.\n- @details Demonstrates the cake pattern for dependency injection.\n- fn `def logAndDraw(): Unit =` (L113-116)\n - @brief Log the drawing operation and then draw.\n\n### trait `trait Serializable` (L123-129)\n- @brief Trait for objects convertible to byte arrays.\n- @brief Serialize this object to bytes.\n- @return Byte array representation.\n\n### fn `def serialize: Array[Byte]` (L128-137)\n- @brief Serialize this object to bytes.\n- @return Byte array representation.\n\n### mod `object Main` (L137-192)\n- @brief Application entry point and utility function container.\n- @brief Application entry point.\n- @param args Command-line arguments.\n- fn `def main(args: Array[String]): Unit =` (L142-147)\n - @brief Application entry point.\n - @param args Command-line arguments.\n- const `val people = List(Person(\"Alice\", 30), Person(\"Bob\", 17))` (L143)\n- const `val adults = people.filter(_.isAdult)` (L145)\n- fn `override def toString: String = \"Main\"` (L153-179)\n - @brief Override toString for Main object display.\n - @brief Mathematical constant pi.\n - @return String representation.\n- const `val pi = 3.14159265` (L156)\n - @brief Mathematical constant pi. */\n- var `var counter = 0` (L159)\n - @brief Mutable counter for tracking operations. */\n- type `type StringList = List[String]` (L164)\n - @brief Type alias for lists of strings.\n- type `type Transformer[A] = A => A` (L169)\n - @brief Type alias for function transformers.\n- fn `def describeShape(shape: Shape): String = shape match` (L176-179)\n - @brief Describe a shape using exhaustive pattern matching.\n - @param shape The shape to describe.\n - @return Human-readable description with area.\n- fn `def classify(x: Int): String = x match` (L186-191)\n - @brief Process a value with multiple match guards.\n - @param x Integer input to classify.\n - @return Classification string.\n\n### class `class Config private (val entries: Map[String, String])` (L201-208)\n- @brief Configuration holder with companion factory.\n- @brief Retrieve a value by key.\n- @param entries Key-value pairs.\n- @param key The configuration key.\n- @return Optional value.\n\n### fn `def get(key: String): Option[String] = entries.get(key)` (L207-214)\n- @brief Retrieve a value by key.\n- @brief Companion object with factory methods for Config.\n- @param key The configuration key.\n- @return Optional value.\n\n### mod `object Config` (L214-227)\n- @brief Companion object with factory methods for Config.\n- @brief Create a Config from key-value pairs.\n- @param entries Variable number of key-value tuples.\n- @return A new Config instance.\n\n### fn `def apply(entries: (String, String)*): Config = new Config(entries.toMap)` (L220-236)\n- @brief Create a Config from key-value pairs.\n- @brief Create an empty Config.\n- @param entries Variable number of key-value tuples.\n- @return A new Config instance.\n- @return Config with no entries.\n\n### fn `def empty: Config = new Config(Map.empty)` (L226-236)\n- @brief Create an empty Config.\n- @return Config with no entries.\n\n### class `class Container[+A](val value: A)` (L236-252)\n- @brief Covariant generic container.\n@tparam +A Element type (covariant).\n- @brief Map the contained value. @tparam B Target type.\n- @param f Transform function.\n- @return New Container with transformed value.\n\n### fn `def map[B](f: A => B): Container[B] = new Container(f(value))` (L243-261)\n- @brief Map the contained value.\n@tparam B Target type.\n- @brief Flat-map the contained value. @tparam B Target type.\n- @param f Transform function.\n- @param f Transform function returning a Container.\n- @return New Container with transformed value.\n- @return Flattened Container.\n\n### fn `def flatMap[B](f: A => Container[B]): Container[B] = f(value)` (L251-261)\n- @brief Flat-map the contained value.\n@tparam B Target type.\n- @param f Transform function returning a Container.\n- @return Flattened Container.\n\n### fn `def isEven: Boolean = n % 2 == 0` (L266-282)\n- @brief Check if the number is even.\n- @brief Repeat a string n times.\n- @param s The string to repeat.\n- @return True if n is divisible by 2.\n- @return Concatenated result.\n\n### fn `def times(s: String): String = s * n` (L273-282)\n- @brief Repeat a string n times.\n- @param s The string to repeat.\n- @return Concatenated result.\n\n### mod `object ForCompExample` (L282-296)\n- @brief Demonstrates for-comprehension with multiple generators.\n- @brief Compute all pairs of integers whose sum equals target.\n- @param range Upper bound of the search space.\n- @param target Desired sum.\n- @return List of pairs summing to target.\n- fn `def findPairs(range: Int, target: Int): List[(Int, Int)] =` (L289-295)\n - @brief Compute all pairs of integers whose sum equals target.\n - @param range Upper bound of the search space.\n - @param target Desired sum.\n - @return List of pairs summing to target.\n\n### mod `object FuncUtils` (L304-332)\n- @brief Utility functions demonstrating functional patterns.\n- @brief Curried addition function.\n- @param a First operand.\n- @param b Second operand.\n- @return Sum of a and b.\n\n### fn `def add(a: Int)(b: Int): Int = a + b` (L311-351)\n- @brief Curried addition function.\n- @brief Apply a function twice to an initial value. @tparam A Value type.\n- @param a First operand.\n- @param b Second operand.\n- @param f Function to apply.\n- @param x Initial value.\n- @return Sum of a and b.\n- @return Result of f(f(x)).\n\n### fn `def twice[A](f: A => A)(x: A): A = f(f(x))` (L320-351)\n- @brief Apply a function twice to an initial value.\n@tparam A Value type.\n- @brief Compose two functions left to right. @tparam A Input type. @tparam B Intermediate type. @tparam C Output type.\n- @param f Function to apply.\n- @param x Initial value.\n- @param f First function.\n- @param g Second function.\n- @return Result of f(f(x)).\n- @return Composed function.\n\n### fn `def compose[A, B, C](f: A => B, g: B => C): A => C = a => g(f(a))` (L331-351)\n- @brief Compose two functions left to right.\n@tparam A Input type.\n@tparam B Intermediate type.\n@tparam C Output type.\n- @param f First function.\n- @param g Second function.\n- @return Composed function.\n\n### trait `trait Runner` (L337-397)\n\n### trait `trait Parser` (L338-397)\n\n### mod `object Metrics` (L339-397)\n- const `val MaxUsers = 100` (L340)\n- const `val RetryLimit = 3` (L341)\n- type `type UserKey = String` (L342)\n- type `type ErrorCode = Int` (L343)\n- type `type Mapper = String => String` (L344)\n- var `var attempts = 0` (L345)\n- var `var cursor = 1` (L346)\n- var `var stage = \"init\"` (L347)\n- var `var status = \"ready\"` (L348)\n\n### mod `object ReqCoverScala` (L351-397)\n- @brief Coverage helper construct 1.\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n- @param value Input value for helper construct 1.\n- @return Output value for helper construct 1.\n- fn `def reqCoverScala1(value: Int): Int = value + 1` (L359)\n - @brief Coverage helper construct 1.\n - @details Provides deterministic fixture-level Doxygen coverage block 1.\n - @param value Input value for helper construct 1.\n - @return Output value for helper construct 1.\n- fn `def reqCoverScala2(value: Int): Int = value + 2` (L368)\n - @brief Coverage helper construct 2.\n - @details Provides deterministic fixture-level Doxygen coverage block 2.\n - @param value Input value for helper construct 2.\n - @return Output value for helper construct 2.\n- fn `def reqCoverScala3(value: Int): Int = value + 3` (L377)\n - @brief Coverage helper construct 3.\n - @details Provides deterministic fixture-level Doxygen coverage block 3.\n - @param value Input value for helper construct 3.\n - @return Output value for helper construct 3.\n- fn `def reqCoverScala4(value: Int): Int = value + 4` (L386)\n - @brief Coverage helper construct 4.\n - @details Provides deterministic fixture-level Doxygen coverage block 4.\n - @param value Input value for helper construct 4.\n - @return Output value for helper construct 4.\n- fn `def reqCoverScala5(value: Int): Int = value + 5` (L395)\n - @brief Coverage helper construct 5.\n - @details Provides deterministic fixture-level Doxygen coverage block 5.\n - @param value Input value for helper construct 5.\n - @return Output value for helper construct 5.\n\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`Person`|class||23-35|case class Person(name: String, age: Int)|\n|`isAdult`|fn||28-43|def isAdult: Boolean = age >= 18|\n|`greet`|fn||34-43|def greet: String = s\"Hi, I'm $name, age $age\"|\n|`area`|fn||48-56|def area: Double|\n|`Circle`|class||56-58|case class Circle(radius: Double) extends Shape|\n|`area`|fn||57-66|override def area: Double = math.Pi * radius * radius|\n|`Rectangle`|class||66-68|case class Rectangle(width: Double, height: Double) exten...|\n|`area`|fn||67-76|override def area: Double = width * height|\n|`Animal`|class||76-88|abstract class Animal|\n|`Animal.sound`|fn||81-87|def sound: String|\n|`Animal.describe`|fn||87|def describe: String = s\"I am a ${getClass.getSimpleName}...|\n|`Drawable`|trait||96-102|trait Drawable|\n|`draw`|fn||101-109|def draw(): Unit|\n|`Logging`|trait||109-117|trait Logging { self: Drawable =>|\n|`Logging.logAndDraw`|fn||113-116|def logAndDraw(): Unit =|\n|`Serializable`|trait||123-129|trait Serializable|\n|`serialize`|fn||128-137|def serialize: Array[Byte]|\n|`Main`|mod||137-192||\n|`Main.main`|fn||142-147|def main(args: Array[String]): Unit =|\n|`Main.people`|const||143||\n|`Main.adults`|const||145||\n|`Main.toString`|fn||153-179|override def toString: String = \"Main\"|\n|`Main.pi`|const||156||\n|`Main.counter`|var||159||\n|`Main.StringList`|type||164||\n|`Main.Transformer`|type||169||\n|`Main.describeShape`|fn||176-179|def describeShape(shape: Shape): String = shape match|\n|`Main.classify`|fn||186-191|def classify(x: Int): String = x match|\n|`Config`|class||201-208|class Config private (val entries: Map[String, String])|\n|`get`|fn||207-214|def get(key: String): Option[String] = entries.get(key)|\n|`Config`|mod||214-227||\n|`apply`|fn||220-236|def apply(entries: (String, String)*): Config = new Confi...|\n|`empty`|fn||226-236|def empty: Config = new Config(Map.empty)|\n|`Container`|class||236-252|class Container[+A](val value: A)|\n|`map`|fn||243-261|def map[B](f: A => B): Container[B] = new Container(f(val...|\n|`flatMap`|fn||251-261|def flatMap[B](f: A => Container[B]): Container[B] = f(va...|\n|`isEven`|fn||266-282|def isEven: Boolean = n % 2 == 0|\n|`times`|fn||273-282|def times(s: String): String = s * n|\n|`ForCompExample`|mod||282-296||\n|`ForCompExample.findPairs`|fn||289-295|def findPairs(range: Int, target: Int): List[(Int, Int)] =|\n|`FuncUtils`|mod||304-332||\n|`add`|fn||311-351|def add(a: Int)(b: Int): Int = a + b|\n|`twice`|fn||320-351|def twice[A](f: A => A)(x: A): A = f(f(x))|\n|`compose`|fn||331-351|def compose[A, B, C](f: A => B, g: B => C): A => C = a =>...|\n|`Runner`|trait||337-397|trait Runner|\n|`Parser`|trait||338-397|trait Parser|\n|`Metrics`|mod||339-397||\n|`Metrics.MaxUsers`|const||340||\n|`Metrics.RetryLimit`|const||341||\n|`Metrics.UserKey`|type||342||\n|`Metrics.ErrorCode`|type||343||\n|`Metrics.Mapper`|type||344||\n|`Metrics.attempts`|var||345||\n|`Metrics.cursor`|var||346||\n|`Metrics.stage`|var||347||\n|`Metrics.status`|var||348||\n|`ReqCoverScala`|mod||351-397||\n|`ReqCoverScala.reqCoverScala1`|fn||359|def reqCoverScala1(value: Int): Int = value + 1|\n|`ReqCoverScala.reqCoverScala2`|fn||368|def reqCoverScala2(value: Int): Int = value + 2|\n|`ReqCoverScala.reqCoverScala3`|fn||377|def reqCoverScala3(value: Int): Int = value + 3|\n|`ReqCoverScala.reqCoverScala4`|fn||386|def reqCoverScala4(value: Int): Int = value + 4|\n|`ReqCoverScala.reqCoverScala5`|fn||395|def reqCoverScala5(value: Int): Int = value + 5|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_shell.sh | Shell | 276L | 25 symbols | 5 imports | 90 comments\n> Path: `tests/fixtures/fixture_shell.sh`\n\n## Imports\n```\nsource ./config.sh\nsource ./env.sh\nsource ./shared.sh\nsource ./runtime.sh\nsource ./network.sh\n```\n\n## Definitions\n\n- var `MY_VAR=\"hello\"` (L12)\n- @brief Greeting message template.\n- var `export PATH_EXT=\"/usr/local/bin\"` (L15)\n- @brief Extended PATH including local binary directory.\n- var `readonly MAX_COUNT=10` (L18)\n- @brief Immutable maximum iteration counter.\n- var `declare -r BUILD_VERSION=\"1.0.0\"` (L21)\n- @brief Build version set via declare.\n- var `DEBUG_MODE=0` (L24)\n- @brief Debug mode flag (0=off, 1=on).\n- var `declare -a LANGUAGES=(\"python\" \"rust\" \"go\" \"java\" \"typescript\")` (L29)\n- @brief Indexed array of supported languages.\n- var `declare -A EXT_MAP=(` (L32)\n- @brief Associative array mapping extensions to languages.\n- fn `function greet() {` (L44)\n- @brief Greet a user by name on stdout.\n- @param $1 The user's name.\n- fn `cleanup() {` (L56)\n- @brief Remove temporary files and directories.\n- @details Called by trap on EXIT for cleanup.\n- fn `parse_args() {` (L68)\n- @brief Parse command-line options using getopts.\n- @param $@ Command-line arguments.\n- @return Sets global variables based on parsed options.\n- var `VERBOSE=1` (L74)\n- var `DEBUG_MODE=1` (L78)\n- var `INPUT_FILE=\"$OPTARG\"` (L82)\n- var `OUTPUT_FILE=\"$OPTARG\"` (L86)\n- fn `process_file() {` (L105)\n- @brief Process a file with error handling and logging.\n- @param $1 Path to the input file.\n- @param $2 Optional output path (defaults to stdout).\n- @return 0 on success, 1 on failure.\n- fn `retry_command() {` (L139)\n- @brief Execute a command with retry logic.\n- @param $1 Maximum number of retry attempts.\n- @param $@ The command and arguments to execute.\n- @return Exit code of the final attempt.\n- fn `log_message() {` (L162)\n- @brief Log a message with timestamp prefix.\n- @param $1 Log level (INFO, WARN, ERROR).\n- @param $@ Message text.\n- fn `make_temp() {` (L172)\n- @brief Generate a temporary file and return its path.\n- @return Path to the created temporary file.\n- fn `generate_config() {` (L189)\n- @brief Generate a configuration file using heredoc.\n- fn `factorial() {` (L203)\n- @brief Compute factorial iteratively.\n- @param $1 Non-negative integer.\n- @return Factorial result.\n- fn `req_cover_shell_1() {` (L236)\n- @brief Coverage helper construct 1.\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n- @param value Input value for helper construct 1.\n- @return Output value for helper construct 1.\n- fn `req_cover_shell_2() {` (L245)\n- @brief Coverage helper construct 2.\n- @details Provides deterministic fixture-level Doxygen coverage block 2.\n- @param value Input value for helper construct 2.\n- @return Output value for helper construct 2.\n- fn `req_cover_shell_3() {` (L254)\n- @brief Coverage helper construct 3.\n- @details Provides deterministic fixture-level Doxygen coverage block 3.\n- @param value Input value for helper construct 3.\n- @return Output value for helper construct 3.\n- fn `req_cover_shell_4() {` (L263)\n- @brief Coverage helper construct 4.\n- @details Provides deterministic fixture-level Doxygen coverage block 4.\n- @param value Input value for helper construct 4.\n- @return Output value for helper construct 4.\n- fn `req_cover_shell_5() {` (L272)\n- @brief Coverage helper construct 5.\n- @details Provides deterministic fixture-level Doxygen coverage block 5.\n- @param value Input value for helper construct 5.\n- @return Output value for helper construct 5.\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`MY_VAR`|var||12||\n|`PATH_EXT`|var||15||\n|`MAX_COUNT`|var||18||\n|`BUILD_VERSION`|var||21||\n|`DEBUG_MODE`|var||24||\n|`LANGUAGES`|var||29||\n|`EXT_MAP`|var||32||\n|`greet`|fn||44|function greet()|\n|`cleanup`|fn||56|cleanup()|\n|`parse_args`|fn||68|parse_args()|\n|`VERBOSE`|var||74||\n|`DEBUG_MODE`|var||78||\n|`INPUT_FILE`|var||82||\n|`OUTPUT_FILE`|var||86||\n|`process_file`|fn||105|process_file()|\n|`retry_command`|fn||139|retry_command()|\n|`log_message`|fn||162|log_message()|\n|`make_temp`|fn||172|make_temp()|\n|`generate_config`|fn||189|generate_config()|\n|`factorial`|fn||203|factorial()|\n|`req_cover_shell_1`|fn||236|req_cover_shell_1()|\n|`req_cover_shell_2`|fn||245|req_cover_shell_2()|\n|`req_cover_shell_3`|fn||254|req_cover_shell_3()|\n|`req_cover_shell_4`|fn||263|req_cover_shell_4()|\n|`req_cover_shell_5`|fn||272|req_cover_shell_5()|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_swift.swift | Swift | 397L | 66 symbols | 7 imports | 156 comments\n> Path: `tests/fixtures/fixture_swift.swift`\n\n## Imports\n```\nimport Foundation\nimport Combine\nimport SwiftUI\nimport Combine\nimport Foundation\nimport Dispatch\nimport UIKit\n```\n\n## Definitions\n\n### class `class Animal` (L16-58)\n- @brief Base class with stored, computed, and observed properties.\n- @brief Species name identifier.\n- var `var species: String` (L18)\n - @brief Species name identifier.\n- var `var legs: Int = 4` (L21)\n - @brief Number of legs; triggers a didSet observer on change.\n- var `var description: String` (L33)\n - @brief Computed property returning a descriptive string.\n- fn `func speak()` (L44-46)\n - @brief Produce a sound; subclasses should override.\n\n### class `class func createDefault() -> Animal` (L50-52)\n- @brief Class method creating a generic instance.\n- @return An Animal with species \"Unknown\".\n\n### class `class Dog: Animal` : Animal (L63-78)\n- @brief Concrete animal with dog-specific behavior.\n- @brief Dog's name.\n- const `let name: String` (L65)\n - @brief Dog's name.\n- fn `override func speak()` (L75-77)\n - @brief Override speak to produce dog-specific sound.\n\n### struct `struct Point: Equatable` : Equatable (L85-102)\n- @brief Value type representing a coordinate pair.\n- var `var x: Double = 0.0` (L86)\n- var `var y: Double = 0.0` (L87)\n- var `var magnitude: Double` (L99)\n - @brief Compute Euclidean distance from origin.\n - @return Distance as a Double.\n\n### struct `struct Matrix` (L107-133)\n- @brief 2D matrix supporting element access via subscript.\n- @brief Flat storage for matrix values.\n- var `private var data: [[Double]]` `priv` (L109)\n - @brief Flat storage for matrix values.\n- const `let rows: Int` (L112)\n - @brief Number of rows.\n- const `let cols: Int` (L114)\n - @brief Number of columns.\n\n### enum `enum Direction: String, CaseIterable` (L140-156)\n- @brief Cardinal directions supporting CaseIterable iteration.\n- var `var opposite: Direction` (L148)\n - @brief Compute the opposite direction.\n - @return The direction 180 degrees from self.\n\n### enum `enum AppResult<T>` (L162-179)\n- @brief Successful result carrying a value.\n- @brief Failure carrying an error description.\n- fn `func map<U>(_ transform: (T) -> U) -> AppResult<U>` (L171-178)\n - @brief Map the success value using a transform closure.\n - @param transform Closure converting T to U.\n - @return A new AppResult with the transformed value.\n\n### proto `protocol Drawable` (L186-193)\n- @brief Defines the render contract with a default extension implementation.\n- @brief Render the object to a string representation.\n- @return Rendered string output.\n- fn `func draw() -> String` (L189-192)\n - @brief Render the object to a string representation.\n - @brief Optional priority for render ordering.\n - @return Rendered string output.\n- var `var renderPriority: Int { get }` (L192)\n - @brief Optional priority for render ordering.\n\n### proto `protocol Container` (L198-208)\n- @brief Defines a type-erased container interface.\n- @brief The type of element stored in the container.\n- var `var count: Int { get }` (L207)\n - @brief Number of elements in the container.\n\n### ext `extension Drawable` (L212-221)\n- @brief Default render priority for all Drawable conformants.\n- var `var renderPriority: Int { return 0 }` (L214)\n - @brief Default render priority for all Drawable conformants.\n- fn `func debugDraw() -> String` (L218-220)\n - @brief Debug draw with priority prefix.\n - @return String with priority and rendered content.\n\n### ext `extension Animal: Drawable` (L226-238)\n- @brief Render animal as a descriptive string.\n- @return Description of the animal.\n- fn `func draw() -> String` (L229-231)\n - @brief Render animal as a descriptive string.\n - @return Description of the animal.\n- fn `func describe() -> String` (L235-237)\n - @brief Describe the animal for UI display.\n - @return A formatted string suitable for labels.\n\n### struct `struct Clamped<Value: Comparable>` (L247-268)\n- @brief Minimum allowed value.\n- @brief Maximum allowed value.\n- const `let min: Value` (L249)\n - @brief Minimum allowed value.\n- const `let max: Value` (L251)\n - @brief Maximum allowed value.\n- var `private var value: Value` `priv` (L253)\n - @brief Current stored value.\n- var `var wrappedValue: Value` (L256)\n - @brief The wrapped value, clamped on set.\n\n- var `private var value: Int = 0` `priv` (L277)\n- @brief Current count value.\n### fn `func increment() -> Int` (L281-284)\n- @brief Increment the counter and return the new value.\n- @return The incremented count.\n\n### fn `func reset()` (L287-289)\n- @brief Reset the counter to zero.\n\n### fn `public func greet(name: String)` (L296-298)\n- @brief Greet a person by name.\n- @param name The person's name.\n\n### fn `func makeDrawable() -> some Drawable` (L302-304)\n- @brief Build an opaque some-typed Drawable.\n- @return An opaque Drawable hiding the concrete type.\n\n### fn `func contains<T: Collection>(items: T, target: T.Element) -> Bool where T.Element: Equatable` (L311-313)\n- @brief Generic function with where clause constraint.\n@tparam T Must be Equatable.\n- @param items Collection of items to search.\n- @param target The item to find.\n- @return True if target exists in items.\n\n### fn `func deferred(_ action: @escaping () -> Void) -> () -> Void` (L318-323)\n- @brief Higher-order function accepting an escaping closure.\n- @param action The closure to store for later execution.\n- @return A wrapper closure that invokes action.\n\n- const `let MAX_SIZE = 1024` (L328)\n- @brief Application-wide maximum buffer size constant.\n- var `private var counter = 0` `priv` (L331)\n- @brief Module-scoped mutable counter with restricted access.\n- const `let defaultConfig: [String: Any] = {` (L334)\n- @brief Lazy computed constant using a closure.\n- var `var config: [String: Any] = [:]` (L335)\n- class `class ServiceController {}` (L347)\n- class `final class CacheStore {}` (L348)\n- struct `struct Vector2 { let x: Int; let y: Int }` (L349)\n- struct `struct Limits { let max: Int }` (L350)\n- enum `enum ModeSwift { case fast, safe }` (L351)\n- enum `enum PhaseSwift { case initState, done }` (L352)\n- enum `enum SignalSwift { case on, off }` (L353)\n- proto `protocol RunnerSwift { func run() }` (L354)\n- proto `protocol LoggerSwift { func log(_ msg: String) }` (L355)\n- proto `protocol ParserSwift { func parse(_ input: String) -> String }` (L356)\n- ext `extension String { func trimmed2() -> String { self.trimmingCharacters(in: .whitespaces) } }` (L357)\n- ext `extension Int { func doubled2() -> Int { self * 2 } }` (L358)\n- ext `extension Array { var isNotEmpty: Bool { !self.isEmpty } }` (L359)\n- fn `func reqCoverSwift1(_ value: Int) -> Int { value + 1 }` (L367)\n- @brief Coverage helper construct 1.\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n- @param value Input value for helper construct 1.\n- @return Output value for helper construct 1.\n- fn `func reqCoverSwift2(_ value: Int) -> Int { value + 2 }` (L374)\n- @brief Coverage helper construct 2.\n- @details Provides deterministic fixture-level Doxygen coverage block 2.\n- @param value Input value for helper construct 2.\n- @return Output value for helper construct 2.\n- fn `func reqCoverSwift3(_ value: Int) -> Int { value + 3 }` (L381)\n- @brief Coverage helper construct 3.\n- @details Provides deterministic fixture-level Doxygen coverage block 3.\n- @param value Input value for helper construct 3.\n- @return Output value for helper construct 3.\n- fn `func reqCoverSwift4(_ value: Int) -> Int { value + 4 }` (L388)\n- @brief Coverage helper construct 4.\n- @details Provides deterministic fixture-level Doxygen coverage block 4.\n- @param value Input value for helper construct 4.\n- @return Output value for helper construct 4.\n- fn `func reqCoverSwift5(_ value: Int) -> Int { value + 5 }` (L395)\n- @brief Coverage helper construct 5.\n- @details Provides deterministic fixture-level Doxygen coverage block 5.\n- @param value Input value for helper construct 5.\n- @return Output value for helper construct 5.\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`Animal`|class||16-58|class Animal|\n|`Animal.species`|var||18||\n|`Animal.legs`|var||21||\n|`Animal.description`|var||33||\n|`Animal.speak`|fn||44-46|func speak()|\n|`func`|class||50-52|class func createDefault() -> Animal|\n|`Dog`|class||63-78|class Dog: Animal|\n|`Dog.name`|const||65||\n|`Dog.speak`|fn||75-77|override func speak()|\n|`Point`|struct||85-102|struct Point: Equatable|\n|`Point.x`|var||86||\n|`Point.y`|var||87||\n|`Point.magnitude`|var||99||\n|`Matrix`|struct||107-133|struct Matrix|\n|`Matrix.data`|var|priv|109||\n|`Matrix.rows`|const||112||\n|`Matrix.cols`|const||114||\n|`Direction`|enum||140-156|enum Direction: String, CaseIterable|\n|`Direction.opposite`|var||148||\n|`AppResult`|enum||162-179|enum AppResult<T>|\n|`AppResult.map`|fn||171-178|func map<U>(_ transform: (T) -> U) -> AppResult<U>|\n|`Drawable`|proto||186-193||\n|`Drawable.draw`|fn||189-192|func draw() -> String|\n|`Drawable.renderPriority`|var||192||\n|`Container`|proto||198-208||\n|`Container.count`|var||207||\n|`Drawable`|ext||212-221||\n|`Drawable.renderPriority`|var||214||\n|`Drawable.debugDraw`|fn||218-220|func debugDraw() -> String|\n|`Animal`|ext||226-238||\n|`Animal.draw`|fn||229-231|func draw() -> String|\n|`Animal.describe`|fn||235-237|func describe() -> String|\n|`Clamped`|struct||247-268|struct Clamped<Value: Comparable>|\n|`Clamped.min`|const||249||\n|`Clamped.max`|const||251||\n|`Clamped.value`|var|priv|253||\n|`Clamped.wrappedValue`|var||256||\n|`value`|var|priv|277||\n|`increment`|fn||281-284|func increment() -> Int|\n|`reset`|fn||287-289|func reset()|\n|`greet`|fn|pub|296-298|public func greet(name: String)|\n|`makeDrawable`|fn||302-304|func makeDrawable() -> some Drawable|\n|`contains`|fn||311-313|func contains<T: Collection>(items: T, target: T.Element)...|\n|`deferred`|fn||318-323|func deferred(_ action: @escaping () -> Void) -> () -> Void|\n|`MAX_SIZE`|const||328||\n|`counter`|var|priv|331||\n|`defaultConfig`|const||334||\n|`config`|var||335||\n|`ServiceController`|class||347|class ServiceController {}|\n|`CacheStore`|class||348|final class CacheStore {}|\n|`Vector2`|struct||349|struct Vector2 { let x: Int; let y: Int }|\n|`Limits`|struct||350|struct Limits { let max: Int }|\n|`ModeSwift`|enum||351|enum ModeSwift { case fast, safe }|\n|`PhaseSwift`|enum||352|enum PhaseSwift { case initState, done }|\n|`SignalSwift`|enum||353|enum SignalSwift { case on, off }|\n|`RunnerSwift`|proto||354||\n|`LoggerSwift`|proto||355||\n|`ParserSwift`|proto||356||\n|`String`|ext||357||\n|`Int`|ext||358||\n|`Array`|ext||359||\n|`reqCoverSwift1`|fn||367|func reqCoverSwift1(_ value: Int) -> Int { value + 1 }|\n|`reqCoverSwift2`|fn||374|func reqCoverSwift2(_ value: Int) -> Int { value + 2 }|\n|`reqCoverSwift3`|fn||381|func reqCoverSwift3(_ value: Int) -> Int { value + 3 }|\n|`reqCoverSwift4`|fn||388|func reqCoverSwift4(_ value: Int) -> Int { value + 4 }|\n|`reqCoverSwift5`|fn||395|func reqCoverSwift5(_ value: Int) -> Int { value + 5 }|\n\n",
4
- "stderr": ""
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 0,
3
- "stdout": "# fixture_typescript.ts | TypeScript | 434L | 45 symbols | 5 imports | 102 comments\n> Path: `tests/fixtures/fixture_typescript.ts`\n- @brief Comprehensive TypeScript test fixture for parser validation.\n- @details Covers conditional types, mapped types, template literal types,\nsatisfies operator, overload signatures, discriminated unions,\nmodule augmentation, decorators, generic constraints, and utility types.\n\n## Imports\n```\nimport { Component } from 'react';\nimport type { ReactNode } from 'react';\nimport { Injectable } from 'inversify';\nimport { Observable } from 'rxjs';\nimport { FC } from 'react';\n```\n\n## Definitions\n\n### iface `interface User` (L19-28)\n- @brief Core user entity with identity fields.\n- @brief Display name of the user.\n- @brief Age in years; must be non-negative.\n\n### iface `interface Repository<T>` (L35-42)\n- @brief Generic CRUD repository with type parameter.\n@tparam T Entity type managed by this repository.\n- @brief Find an entity by its ID.\n- @brief Persist an entity, returning the saved version.\n\n### iface `interface Serializable` (L48-51)\n- @brief Marks objects that can be serialized to JSON.\n- @brief Convert to a JSON-compatible string.\n\n- type `type StringOrNumber = string | number;` (L56)\n- @brief Union type for values that can be string or number. */\n- type `type DeepReadonly<T> = {` (L59)\n- @brief Mapped type making all properties of T optional and readonly. */\n- type `type Unwrap<T> = T extends Array<infer U> ? U : T;` (L64)\n- @brief Conditional type extracting array element type. */\n- type `type PixelValue = `${number}px`;` (L67)\n- @brief Template literal type for CSS pixel values. */\n- type `type ApiResponse<T> =` (L70)\n- @brief Discriminated union tag for API responses. */\n- type `type KeysOfType<T, V> = {` (L76)\n- @brief Extract keys of T whose values extend a given type. */\n### enum `const enum Direction` (L86-91)\n- @brief Const enum for cardinal directions (inlined at compile time).\n\n### enum `enum Color` (L97-104)\n- @brief Regular enum with numeric values for color channels.\n- @brief Red channel identifier.\n- @brief Blue channel identifier.\n\n### enum `enum HttpStatus` (L110-114)\n- @brief String enum mapping HTTP status codes.\n\n### class `export abstract class Base` (L122-139)\n- @brief Abstract base class with template method pattern.\n- @brief Abstract render method to be implemented by subclasses.\n- @return void\n\n### class `class Derived extends Base` : Base (L148-161)\n- @brief Concrete implementation with typed value storage.\n- @brief Stored numeric value.\n\n### class `class TypedContainer<T extends Serializable>` : Serializable> (L168-201)\n- @brief Generic container with constraint on Serializable.\n@tparam T Must implement Serializable interface.\n- @brief Internal array storage for items.\n\n### class `class UserEntity implements User, Serializable` : User, Serializable (L210-228)\n- @brief Full user entity implementing both User and Serializable.\n\n### fn `export function greet(name: string): void` (L237-239)\n- @brief Greet a person by name with type-safe parameter.\n- @param name The person's name to display.\n\n### fn `function parse(input: string): number` (L249-256)\n- @brief Parse input with overloaded signatures for type safety.\n@overload Parse a string input into a number.\n@overload Parse a number input into a string.\n\n### fn `function parse(input: number): string` (L250-256)\n\n### fn `function parse(input: string | number): string | number` (L251-256)\n\n### fn `const add = (a: number): number => a + 1` (L266-277)\n- @brief Add one to a number (arrow function syntax).\n- @brief Generic transform function with constraint. @tparam T Must have a toString method.\n- @param a The input number.\n- @param value Input value to transform.\n- @return The incremented value.\n- @return String representation of the value.\n\n### fn `async function fetchEntity<T>(url: string): Promise<T>` (L288-292)\n- @brief Fetch and deserialize a typed entity from an API.\n@tparam T The expected response entity type.\n- @param url Endpoint URL.\n- @return Promise resolving to the typed entity.\n\n### ns `export namespace MyNS` (L300-312)\n- @brief Namespace grouping related constants and helpers.\n- @brief Exported constant within namespace.\n- fn `export function double(val: number): number` (L309-311)\n - @brief Helper function scoped to namespace.\n - @param val Numeric input to double.\n - @return The doubled value.\n\n### mod `declare module MyMod` (L320-323)\n- @brief Ambient module declaration for external library typings.\n- @brief Version string exposed by the external module.\n\n### class `class Decorated` `@Component` (L332-335)\n- @brief Template string for rendering.\n\n### fn `function isUser(value: unknown): value is User` (L345-351)\n- @brief Type guard narrowing unknown to User interface.\n- @param value Unknown input to validate.\n- @return True if value conforms to User shape.\n\n### fn `function makeOptional<T extends object>(obj: T): Partial<T>` (L373-375)\n- @brief Convert all properties of an object to optional at runtime.\n@tparam T Source object type.\n- @param obj The source object.\n- @return A partial copy of the object.\n\n- iface `interface CacheEntry { key: string; value: string }` (L385)\n- iface `export interface Runner { run(): Promise<void> }` (L386)\n- enum `enum ModeTs { Fast, Safe }` (L387)\n- enum `enum StatusTs { Ready, Busy }` (L388)\n- ns `namespace ExtNSOne { export const v = 1; }` (L389)\n- ns `namespace ExtNSTwo { export const v = 2; }` (L390)\n- ns `namespace ExtNSThree { export const v = 3; }` (L391)\n- ns `namespace ExtNSFour { export const v = 4; }` (L392)\n- mod `declare module ExtOne { export const one: number; }` (L393)\n- mod `module ExtTwo { export const two = 2; }` (L394)\n- mod `module ExtThree { export const three = 3; }` (L395)\n- mod `module ExtFour { export const four = 4; }` (L396)\n- fn `function reqCoverTs1(value: number): number { return value + 1; }` (L404)\n- @brief Coverage helper construct 1.\n- @details Provides deterministic fixture-level Doxygen coverage block 1.\n- @param value Input value for helper construct 1.\n- @return Output value for helper construct 1.\n- fn `function reqCoverTs2(value: number): number { return value + 2; }` (L411)\n- @brief Coverage helper construct 2.\n- @details Provides deterministic fixture-level Doxygen coverage block 2.\n- @param value Input value for helper construct 2.\n- @return Output value for helper construct 2.\n- fn `function reqCoverTs3(value: number): number { return value + 3; }` (L418)\n- @brief Coverage helper construct 3.\n- @details Provides deterministic fixture-level Doxygen coverage block 3.\n- @param value Input value for helper construct 3.\n- @return Output value for helper construct 3.\n- fn `function reqCoverTs4(value: number): number { return value + 4; }` (L425)\n- @brief Coverage helper construct 4.\n- @details Provides deterministic fixture-level Doxygen coverage block 4.\n- @param value Input value for helper construct 4.\n- @return Output value for helper construct 4.\n- fn `function reqCoverTs5(value: number): number { return value + 5; }` (L432)\n- @brief Coverage helper construct 5.\n- @details Provides deterministic fixture-level Doxygen coverage block 5.\n- @param value Input value for helper construct 5.\n- @return Output value for helper construct 5.\n## Symbol Index\n|Symbol|Kind|Vis|Lines|Sig|\n|---|---|---|---|---|\n|`User`|iface||19-28|interface User|\n|`Repository`|iface||35-42|interface Repository<T>|\n|`Serializable`|iface||48-51|interface Serializable|\n|`StringOrNumber`|type||56||\n|`DeepReadonly`|type||59||\n|`Unwrap`|type||64||\n|`PixelValue`|type||67||\n|`ApiResponse`|type||70||\n|`KeysOfType`|type||76||\n|`Direction`|enum||86-91|const enum Direction|\n|`Color`|enum||97-104|enum Color|\n|`HttpStatus`|enum||110-114|enum HttpStatus|\n|`Base`|class||122-139|export abstract class Base|\n|`Derived`|class||148-161|class Derived extends Base|\n|`TypedContainer`|class||168-201|class TypedContainer<T extends Serializable>|\n|`UserEntity`|class||210-228|class UserEntity implements User, Serializable|\n|`greet`|fn||237-239|export function greet(name: string): void|\n|`parse`|fn||249-256|function parse(input: string): number|\n|`parse`|fn||250-256|function parse(input: number): string|\n|`parse`|fn||251-256|function parse(input: string | number): string | number|\n|`add`|fn||266-277|const add = (a: number): number => a + 1|\n|`fetchEntity`|fn||288-292|async function fetchEntity<T>(url: string): Promise<T>|\n|`MyNS`|ns||300-312||\n|`MyNS.double`|fn||309-311|export function double(val: number): number|\n|`MyMod`|mod||320-323||\n|`Decorated`|class||332-335|class Decorated|\n|`isUser`|fn||345-351|function isUser(value: unknown): value is User|\n|`makeOptional`|fn||373-375|function makeOptional<T extends object>(obj: T): Partial<T>|\n|`CacheEntry`|iface||385|interface CacheEntry { key: string; value: string }|\n|`Runner`|iface||386|export interface Runner { run(): Promise<void> }|\n|`ModeTs`|enum||387|enum ModeTs { Fast, Safe }|\n|`StatusTs`|enum||388|enum StatusTs { Ready, Busy }|\n|`ExtNSOne`|ns||389||\n|`ExtNSTwo`|ns||390||\n|`ExtNSThree`|ns||391||\n|`ExtNSFour`|ns||392||\n|`ExtOne`|mod||393||\n|`ExtTwo`|mod||394||\n|`ExtThree`|mod||395||\n|`ExtFour`|mod||396||\n|`reqCoverTs1`|fn||404|function reqCoverTs1(value: number): number { return valu...|\n|`reqCoverTs2`|fn||411|function reqCoverTs2(value: number): number { return valu...|\n|`reqCoverTs3`|fn||418|function reqCoverTs3(value: number): number { return valu...|\n|`reqCoverTs4`|fn||425|function reqCoverTs4(value: number): number { return valu...|\n|`reqCoverTs5`|fn||432|function reqCoverTs5(value: number): number { return valu...|\n\n",
4
- "stderr": ""
5
- }