pi-usereq 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/.g.conf +20 -0
  2. package/.github/workflows/release-npm.yml +131 -0
  3. package/.gitignore +270 -0
  4. package/CHANGELOG.md +221 -0
  5. package/LICENSE +674 -0
  6. package/README.md +260 -0
  7. package/TODO.md +20 -0
  8. package/docs/pi.dev/agent-document-manifest.json +6399 -0
  9. package/docs/pi.dev/coding-agent-docs/compaction.md +394 -0
  10. package/docs/pi.dev/coding-agent-docs/custom-provider.md +596 -0
  11. package/docs/pi.dev/coding-agent-docs/development.md +71 -0
  12. package/docs/pi.dev/coding-agent-docs/extensions.md +2262 -0
  13. package/docs/pi.dev/coding-agent-docs/images/doom-extension.png +0 -0
  14. package/docs/pi.dev/coding-agent-docs/images/exy.png +0 -0
  15. package/docs/pi.dev/coding-agent-docs/images/interactive-mode.png +0 -0
  16. package/docs/pi.dev/coding-agent-docs/images/tree-view.png +0 -0
  17. package/docs/pi.dev/coding-agent-docs/json.md +82 -0
  18. package/docs/pi.dev/coding-agent-docs/keybindings.md +175 -0
  19. package/docs/pi.dev/coding-agent-docs/models.md +392 -0
  20. package/docs/pi.dev/coding-agent-docs/packages.md +218 -0
  21. package/docs/pi.dev/coding-agent-docs/prompt-templates.md +67 -0
  22. package/docs/pi.dev/coding-agent-docs/providers.md +195 -0
  23. package/docs/pi.dev/coding-agent-docs/rpc.md +1377 -0
  24. package/docs/pi.dev/coding-agent-docs/sdk.md +1124 -0
  25. package/docs/pi.dev/coding-agent-docs/session.md +412 -0
  26. package/docs/pi.dev/coding-agent-docs/settings.md +247 -0
  27. package/docs/pi.dev/coding-agent-docs/shell-aliases.md +13 -0
  28. package/docs/pi.dev/coding-agent-docs/skills.md +232 -0
  29. package/docs/pi.dev/coding-agent-docs/terminal-setup.md +106 -0
  30. package/docs/pi.dev/coding-agent-docs/termux.md +127 -0
  31. package/docs/pi.dev/coding-agent-docs/themes.md +295 -0
  32. package/docs/pi.dev/coding-agent-docs/tmux.md +61 -0
  33. package/docs/pi.dev/coding-agent-docs/tree.md +231 -0
  34. package/docs/pi.dev/coding-agent-docs/tui.md +887 -0
  35. package/docs/pi.dev/coding-agent-docs/windows.md +17 -0
  36. package/docs/pi.dev/mom-docs/artifacts-server.md +475 -0
  37. package/docs/pi.dev/mom-docs/events.md +307 -0
  38. package/docs/pi.dev/mom-docs/new.md +970 -0
  39. package/docs/pi.dev/mom-docs/sandbox.md +153 -0
  40. package/docs/pi.dev/mom-docs/slack-bot-minimal-guide.md +399 -0
  41. package/docs/pi.dev/mom-docs/v86.md +319 -0
  42. package/docs/pi.dev/pods-docs/gml-4.5.md +189 -0
  43. package/docs/pi.dev/pods-docs/gpt-oss.md +233 -0
  44. package/docs/pi.dev/pods-docs/implementation-plan.md +183 -0
  45. package/docs/pi.dev/pods-docs/kimi-k2.md +197 -0
  46. package/docs/pi.dev/pods-docs/models.md +116 -0
  47. package/docs/pi.dev/pods-docs/plan.md +166 -0
  48. package/docs/pi.dev/pods-docs/qwen3-coder.md +132 -0
  49. package/images/flowchart-bw.png +0 -0
  50. package/images/flowchart-bw.svg +102 -0
  51. package/images/flowchart.md +100 -0
  52. package/images/flowchart.png +0 -0
  53. package/images/flowchart.svg +3 -0
  54. package/package.json +46 -0
  55. package/req/docs/REFERENCES.md +4554 -0
  56. package/req/docs/REQUIREMENTS.md +475 -0
  57. package/req/docs/WORKFLOW.md +1059 -0
  58. package/scripts/debug-extension.ts +497 -0
  59. package/scripts/lib/extension-debug-harness.ts +450 -0
  60. package/scripts/lib/recording-extension-api.ts +786 -0
  61. package/scripts/lib/sdk-smoke.ts +503 -0
  62. package/scripts/pi-usereq-debug.sh +330 -0
  63. package/scripts/tool-args-to-params.ts +208 -0
  64. package/src/cli.ts +349 -0
  65. package/src/core/agent-tool-json.ts +621 -0
  66. package/src/core/compress-files.ts +72 -0
  67. package/src/core/compress-payload.ts +648 -0
  68. package/src/core/compress.ts +464 -0
  69. package/src/core/config.ts +272 -0
  70. package/src/core/doxygen-parser.ts +318 -0
  71. package/src/core/errors.ts +31 -0
  72. package/src/core/extension-status.ts +660 -0
  73. package/src/core/find-constructs.ts +319 -0
  74. package/src/core/find-payload.ts +915 -0
  75. package/src/core/generate-markdown.ts +120 -0
  76. package/src/core/path-context.ts +196 -0
  77. package/src/core/pi-notify.ts +430 -0
  78. package/src/core/pi-usereq-tools.ts +140 -0
  79. package/src/core/prompts.ts +184 -0
  80. package/src/core/reference-payload.ts +818 -0
  81. package/src/core/resources.ts +63 -0
  82. package/src/core/runtime-project-paths.ts +99 -0
  83. package/src/core/settings-menu.ts +233 -0
  84. package/src/core/source-analyzer.ts +1721 -0
  85. package/src/core/static-check.ts +674 -0
  86. package/src/core/token-counter.ts +729 -0
  87. package/src/core/tool-runner.ts +717 -0
  88. package/src/core/utils.ts +185 -0
  89. package/src/index.ts +2209 -0
  90. package/src/resources/guidelines/Google_C++_Style_Guide.md +3711 -0
  91. package/src/resources/guidelines/Google_Python_Style_Guide.md +3709 -0
  92. package/src/resources/prompts/analyze.md +130 -0
  93. package/src/resources/prompts/change.md +227 -0
  94. package/src/resources/prompts/check.md +139 -0
  95. package/src/resources/prompts/cover.md +219 -0
  96. package/src/resources/prompts/create.md +104 -0
  97. package/src/resources/prompts/fix.md +221 -0
  98. package/src/resources/prompts/flowchart.md +220 -0
  99. package/src/resources/prompts/implement.md +163 -0
  100. package/src/resources/prompts/new.md +226 -0
  101. package/src/resources/prompts/readme.md +182 -0
  102. package/src/resources/prompts/recreate.md +213 -0
  103. package/src/resources/prompts/refactor.md +213 -0
  104. package/src/resources/prompts/references.md +100 -0
  105. package/src/resources/prompts/renumber.md +119 -0
  106. package/src/resources/prompts/workflow.md +202 -0
  107. package/src/resources/prompts/write.md +99 -0
  108. package/src/resources/sounds/Machine-alert-beep-sound-effect.mp3 +0 -0
  109. package/src/resources/sounds/Soft-high-tech-notification-sound-effect.mp3 +0 -0
  110. package/src/resources/templates/Document_Source_Code_in_Doxygen_Style.md +130 -0
  111. package/src/resources/templates/HDT_Test_Authoring_Guide.md +318 -0
  112. package/src/resources/templates/Requirements_Template.md +78 -0
  113. package/tests/attended-results-scenarios.ts +758 -0
  114. package/tests/attended-results.test.ts +39 -0
  115. package/tests/cli-command-option-parity.test.ts +815 -0
  116. package/tests/debug-extension-harness.test.ts +463 -0
  117. package/tests/extension-registration.test.ts +2006 -0
  118. package/tests/fixtures/fixture_c.c +361 -0
  119. package/tests/fixtures/fixture_cpp.cpp +407 -0
  120. package/tests/fixtures/fixture_csharp.cs +411 -0
  121. package/tests/fixtures/fixture_elixir.ex +409 -0
  122. package/tests/fixtures/fixture_go.go +341 -0
  123. package/tests/fixtures/fixture_haskell.hs +250 -0
  124. package/tests/fixtures/fixture_java.java +430 -0
  125. package/tests/fixtures/fixture_javascript.js +383 -0
  126. package/tests/fixtures/fixture_kotlin.kt +451 -0
  127. package/tests/fixtures/fixture_lua.lua +276 -0
  128. package/tests/fixtures/fixture_perl.pl +310 -0
  129. package/tests/fixtures/fixture_php.php +433 -0
  130. package/tests/fixtures/fixture_python.py +502 -0
  131. package/tests/fixtures/fixture_ruby.rb +345 -0
  132. package/tests/fixtures/fixture_rust.rs +380 -0
  133. package/tests/fixtures/fixture_scala.scala +398 -0
  134. package/tests/fixtures/fixture_shell.sh +276 -0
  135. package/tests/fixtures/fixture_swift.swift +397 -0
  136. package/tests/fixtures/fixture_typescript.ts +434 -0
  137. package/tests/fixtures/fixture_zig.zig +295 -0
  138. package/tests/fixtures_attended_results/project/compress-line-numbers.json +5 -0
  139. package/tests/fixtures_attended_results/project/compress.json +5 -0
  140. package/tests/fixtures_attended_results/project/enable-static-check-invalid-command.json +5 -0
  141. package/tests/fixtures_attended_results/project/enable-static-check-valid.json +5 -0
  142. package/tests/fixtures_attended_results/project/files-static-check.json +5 -0
  143. package/tests/fixtures_attended_results/project/find-line-numbers.json +5 -0
  144. package/tests/fixtures_attended_results/project/find.json +5 -0
  145. package/tests/fixtures_attended_results/project/get-base-path.json +5 -0
  146. package/tests/fixtures_attended_results/project/git-check-clean.json +5 -0
  147. package/tests/fixtures_attended_results/project/git-check-dirty.json +5 -0
  148. package/tests/fixtures_attended_results/project/git-path.json +5 -0
  149. package/tests/fixtures_attended_results/project/git-wt-create-invalid.json +5 -0
  150. package/tests/fixtures_attended_results/project/git-wt-create-valid.json +5 -0
  151. package/tests/fixtures_attended_results/project/git-wt-delete-nonexistent.json +5 -0
  152. package/tests/fixtures_attended_results/project/git-wt-delete-valid.json +5 -0
  153. package/tests/fixtures_attended_results/project/git-wt-name.json +5 -0
  154. package/tests/fixtures_attended_results/project/references.json +5 -0
  155. package/tests/fixtures_attended_results/project/static-check.json +5 -0
  156. package/tests/fixtures_attended_results/project/tokens.json +5 -0
  157. package/tests/fixtures_attended_results/standalone/files-compress/fixture_c.c.json +5 -0
  158. package/tests/fixtures_attended_results/standalone/files-compress/fixture_cpp.cpp.json +5 -0
  159. package/tests/fixtures_attended_results/standalone/files-compress/fixture_csharp.cs.json +5 -0
  160. package/tests/fixtures_attended_results/standalone/files-compress/fixture_elixir.ex.json +5 -0
  161. package/tests/fixtures_attended_results/standalone/files-compress/fixture_go.go.json +5 -0
  162. package/tests/fixtures_attended_results/standalone/files-compress/fixture_haskell.hs.json +5 -0
  163. package/tests/fixtures_attended_results/standalone/files-compress/fixture_java.java.json +5 -0
  164. package/tests/fixtures_attended_results/standalone/files-compress/fixture_javascript.js.json +5 -0
  165. package/tests/fixtures_attended_results/standalone/files-compress/fixture_kotlin.kt.json +5 -0
  166. package/tests/fixtures_attended_results/standalone/files-compress/fixture_lua.lua.json +5 -0
  167. package/tests/fixtures_attended_results/standalone/files-compress/fixture_perl.pl.json +5 -0
  168. package/tests/fixtures_attended_results/standalone/files-compress/fixture_php.php.json +5 -0
  169. package/tests/fixtures_attended_results/standalone/files-compress/fixture_python.py.json +5 -0
  170. package/tests/fixtures_attended_results/standalone/files-compress/fixture_ruby.rb.json +5 -0
  171. package/tests/fixtures_attended_results/standalone/files-compress/fixture_rust.rs.json +5 -0
  172. package/tests/fixtures_attended_results/standalone/files-compress/fixture_scala.scala.json +5 -0
  173. package/tests/fixtures_attended_results/standalone/files-compress/fixture_shell.sh.json +5 -0
  174. package/tests/fixtures_attended_results/standalone/files-compress/fixture_swift.swift.json +5 -0
  175. package/tests/fixtures_attended_results/standalone/files-compress/fixture_typescript.ts.json +5 -0
  176. package/tests/fixtures_attended_results/standalone/files-compress/fixture_zig.zig.json +5 -0
  177. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_c.c.json +5 -0
  178. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_cpp.cpp.json +5 -0
  179. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_csharp.cs.json +5 -0
  180. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_elixir.ex.json +5 -0
  181. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_go.go.json +5 -0
  182. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_haskell.hs.json +5 -0
  183. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_java.java.json +5 -0
  184. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_javascript.js.json +5 -0
  185. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_kotlin.kt.json +5 -0
  186. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_lua.lua.json +5 -0
  187. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_perl.pl.json +5 -0
  188. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_php.php.json +5 -0
  189. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_python.py.json +5 -0
  190. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_ruby.rb.json +5 -0
  191. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_rust.rs.json +5 -0
  192. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_scala.scala.json +5 -0
  193. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_shell.sh.json +5 -0
  194. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_swift.swift.json +5 -0
  195. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_typescript.ts.json +5 -0
  196. package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_zig.zig.json +5 -0
  197. package/tests/fixtures_attended_results/standalone/files-find/fixture_c.c.json +5 -0
  198. package/tests/fixtures_attended_results/standalone/files-find/fixture_cpp.cpp.json +5 -0
  199. package/tests/fixtures_attended_results/standalone/files-find/fixture_csharp.cs.json +5 -0
  200. package/tests/fixtures_attended_results/standalone/files-find/fixture_elixir.ex.json +5 -0
  201. package/tests/fixtures_attended_results/standalone/files-find/fixture_go.go.json +5 -0
  202. package/tests/fixtures_attended_results/standalone/files-find/fixture_haskell.hs.json +5 -0
  203. package/tests/fixtures_attended_results/standalone/files-find/fixture_java.java.json +5 -0
  204. package/tests/fixtures_attended_results/standalone/files-find/fixture_javascript.js.json +5 -0
  205. package/tests/fixtures_attended_results/standalone/files-find/fixture_kotlin.kt.json +5 -0
  206. package/tests/fixtures_attended_results/standalone/files-find/fixture_lua.lua.json +5 -0
  207. package/tests/fixtures_attended_results/standalone/files-find/fixture_perl.pl.json +5 -0
  208. package/tests/fixtures_attended_results/standalone/files-find/fixture_php.php.json +5 -0
  209. package/tests/fixtures_attended_results/standalone/files-find/fixture_python.py.json +5 -0
  210. package/tests/fixtures_attended_results/standalone/files-find/fixture_ruby.rb.json +5 -0
  211. package/tests/fixtures_attended_results/standalone/files-find/fixture_rust.rs.json +5 -0
  212. package/tests/fixtures_attended_results/standalone/files-find/fixture_scala.scala.json +5 -0
  213. package/tests/fixtures_attended_results/standalone/files-find/fixture_shell.sh.json +5 -0
  214. package/tests/fixtures_attended_results/standalone/files-find/fixture_swift.swift.json +5 -0
  215. package/tests/fixtures_attended_results/standalone/files-find/fixture_typescript.ts.json +5 -0
  216. package/tests/fixtures_attended_results/standalone/files-find/fixture_zig.zig.json +5 -0
  217. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_c.c.json +5 -0
  218. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_cpp.cpp.json +5 -0
  219. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_csharp.cs.json +5 -0
  220. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_elixir.ex.json +5 -0
  221. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_go.go.json +5 -0
  222. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_haskell.hs.json +5 -0
  223. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_java.java.json +5 -0
  224. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_javascript.js.json +5 -0
  225. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_kotlin.kt.json +5 -0
  226. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_lua.lua.json +5 -0
  227. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_perl.pl.json +5 -0
  228. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_php.php.json +5 -0
  229. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_python.py.json +5 -0
  230. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_ruby.rb.json +5 -0
  231. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_rust.rs.json +5 -0
  232. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_scala.scala.json +5 -0
  233. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_shell.sh.json +5 -0
  234. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_swift.swift.json +5 -0
  235. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_typescript.ts.json +5 -0
  236. package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_zig.zig.json +5 -0
  237. package/tests/fixtures_attended_results/standalone/files-references/fixture_c.c.json +5 -0
  238. package/tests/fixtures_attended_results/standalone/files-references/fixture_cpp.cpp.json +5 -0
  239. package/tests/fixtures_attended_results/standalone/files-references/fixture_csharp.cs.json +5 -0
  240. package/tests/fixtures_attended_results/standalone/files-references/fixture_elixir.ex.json +5 -0
  241. package/tests/fixtures_attended_results/standalone/files-references/fixture_go.go.json +5 -0
  242. package/tests/fixtures_attended_results/standalone/files-references/fixture_haskell.hs.json +5 -0
  243. package/tests/fixtures_attended_results/standalone/files-references/fixture_java.java.json +5 -0
  244. package/tests/fixtures_attended_results/standalone/files-references/fixture_javascript.js.json +5 -0
  245. package/tests/fixtures_attended_results/standalone/files-references/fixture_kotlin.kt.json +5 -0
  246. package/tests/fixtures_attended_results/standalone/files-references/fixture_lua.lua.json +5 -0
  247. package/tests/fixtures_attended_results/standalone/files-references/fixture_perl.pl.json +5 -0
  248. package/tests/fixtures_attended_results/standalone/files-references/fixture_php.php.json +5 -0
  249. package/tests/fixtures_attended_results/standalone/files-references/fixture_python.py.json +5 -0
  250. package/tests/fixtures_attended_results/standalone/files-references/fixture_ruby.rb.json +5 -0
  251. package/tests/fixtures_attended_results/standalone/files-references/fixture_rust.rs.json +5 -0
  252. package/tests/fixtures_attended_results/standalone/files-references/fixture_scala.scala.json +5 -0
  253. package/tests/fixtures_attended_results/standalone/files-references/fixture_shell.sh.json +5 -0
  254. package/tests/fixtures_attended_results/standalone/files-references/fixture_swift.swift.json +5 -0
  255. package/tests/fixtures_attended_results/standalone/files-references/fixture_typescript.ts.json +5 -0
  256. package/tests/fixtures_attended_results/standalone/files-references/fixture_zig.zig.json +5 -0
  257. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_c.c.json +5 -0
  258. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_cpp.cpp.json +5 -0
  259. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_csharp.cs.json +5 -0
  260. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_elixir.ex.json +5 -0
  261. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_go.go.json +5 -0
  262. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_haskell.hs.json +5 -0
  263. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_java.java.json +5 -0
  264. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_javascript.js.json +5 -0
  265. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_kotlin.kt.json +5 -0
  266. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_lua.lua.json +5 -0
  267. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_perl.pl.json +5 -0
  268. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_php.php.json +5 -0
  269. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_python.py.json +5 -0
  270. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_ruby.rb.json +5 -0
  271. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_rust.rs.json +5 -0
  272. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_scala.scala.json +5 -0
  273. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_shell.sh.json +5 -0
  274. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_swift.swift.json +5 -0
  275. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_typescript.ts.json +5 -0
  276. package/tests/fixtures_attended_results/standalone/files-tokens/fixture_zig.zig.json +5 -0
  277. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_c.c.json +5 -0
  278. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_cpp.cpp.json +5 -0
  279. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_csharp.cs.json +5 -0
  280. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_elixir.ex.json +5 -0
  281. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_go.go.json +5 -0
  282. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_haskell.hs.json +5 -0
  283. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_java.java.json +5 -0
  284. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_javascript.js.json +5 -0
  285. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_kotlin.kt.json +5 -0
  286. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_lua.lua.json +5 -0
  287. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_perl.pl.json +5 -0
  288. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_php.php.json +5 -0
  289. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_python.py.json +5 -0
  290. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_ruby.rb.json +5 -0
  291. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_rust.rs.json +5 -0
  292. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_scala.scala.json +5 -0
  293. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_shell.sh.json +5 -0
  294. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_swift.swift.json +5 -0
  295. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_typescript.ts.json +5 -0
  296. package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_zig.zig.json +5 -0
  297. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_c.c.json +5 -0
  298. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_cpp.cpp.json +5 -0
  299. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_csharp.cs.json +5 -0
  300. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_elixir.ex.json +5 -0
  301. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_go.go.json +5 -0
  302. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_haskell.hs.json +5 -0
  303. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_java.java.json +5 -0
  304. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_javascript.js.json +5 -0
  305. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_kotlin.kt.json +5 -0
  306. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_lua.lua.json +5 -0
  307. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_perl.pl.json +5 -0
  308. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_php.php.json +5 -0
  309. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_python.py.json +5 -0
  310. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_ruby.rb.json +5 -0
  311. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_rust.rs.json +5 -0
  312. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_scala.scala.json +5 -0
  313. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_shell.sh.json +5 -0
  314. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_swift.swift.json +5 -0
  315. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_typescript.ts.json +5 -0
  316. package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_zig.zig.json +5 -0
  317. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_c.c.json +5 -0
  318. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_cpp.cpp.json +5 -0
  319. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_csharp.cs.json +5 -0
  320. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_elixir.ex.json +5 -0
  321. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_go.go.json +5 -0
  322. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_haskell.hs.json +5 -0
  323. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_java.java.json +5 -0
  324. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_javascript.js.json +5 -0
  325. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_kotlin.kt.json +5 -0
  326. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_lua.lua.json +5 -0
  327. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_perl.pl.json +5 -0
  328. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_php.php.json +5 -0
  329. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_python.py.json +5 -0
  330. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_ruby.rb.json +5 -0
  331. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_rust.rs.json +5 -0
  332. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_scala.scala.json +5 -0
  333. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_shell.sh.json +5 -0
  334. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_swift.swift.json +5 -0
  335. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_typescript.ts.json +5 -0
  336. package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_zig.zig.json +5 -0
  337. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_c.c.json +5 -0
  338. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_cpp.cpp.json +5 -0
  339. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_csharp.cs.json +5 -0
  340. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_elixir.ex.json +5 -0
  341. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_go.go.json +5 -0
  342. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_haskell.hs.json +5 -0
  343. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_java.java.json +5 -0
  344. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_javascript.js.json +5 -0
  345. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_kotlin.kt.json +5 -0
  346. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_lua.lua.json +5 -0
  347. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_perl.pl.json +5 -0
  348. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_php.php.json +5 -0
  349. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_python.py.json +5 -0
  350. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_ruby.rb.json +5 -0
  351. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_rust.rs.json +5 -0
  352. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_scala.scala.json +5 -0
  353. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_shell.sh.json +5 -0
  354. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_swift.swift.json +5 -0
  355. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_typescript.ts.json +5 -0
  356. package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_zig.zig.json +5 -0
  357. package/tests/helpers.ts +204 -0
  358. package/tests/oracle-project.test.ts +63 -0
  359. package/tests/oracle-standalone.test.ts +48 -0
  360. package/tests/prompt-rendering.test.ts +66 -0
  361. package/tests/release-workflow.test.ts +133 -0
@@ -0,0 +1,502 @@
1
+ #!/usr/bin/env python3
2
+ """!
3
+ @file fixture_python.py
4
+ @brief Comprehensive Python test fixture for parser validation.
5
+ @details Covers classes, protocols, decorators, generators, async functions, and rich Doxygen-tagged constructs used to validate extraction workflows and deterministic parser behavior.
6
+ """
7
+ import asyncio #!< @brief Async IO support. @details Used for async test fixtures. # noqa: F401
8
+ import os #!< @brief OS interface module. @details Provides OS-dependent functionality. # noqa: F401
9
+ import sys #!< @brief System-specific parameters. @see sys.exit() for exit handling.
10
+ from pathlib import Path #!< @brief Object-oriented filesystem paths. @note Preferred over os.path. # noqa: F401
11
+ from typing import (
12
+ Optional, List, Dict, Union, Protocol,
13
+ TypeVar, Generic, Iterator, AsyncIterator
14
+ )
15
+ from dataclasses import dataclass, field
16
+ from abc import ABC, abstractmethod
17
+ from contextlib import contextmanager
18
+
19
+ MAX_RETRIES = 3 #!< @brief Maximum retry attempts. @details Applied to network operations. @warning Tune per use case. @satisfies retry-policy
20
+ DEFAULT_TIMEOUT = 30.0 #!< @brief Default timeout in seconds. @note For I/O operations.
21
+ _INTERNAL_CACHE: Dict[str, int] = {} #!< @brief Internal cache dict. @deprecated Use lru_cache instead.
22
+
23
+ T = TypeVar("T")
24
+
25
+
26
+ @dataclass(slots=True)
27
+ class Config:
28
+ """Configuration data holder for the application.
29
+
30
+ @brief Stores key-value pairs with optional default fallback.
31
+ @details Dataclass-based configuration with validation.
32
+ @note Immutable after creation when frozen=True is used.
33
+ @see __post_init__() for validation logic.
34
+ """
35
+ name: str
36
+ values: Dict[str, str] = field(default_factory=dict)
37
+ debug: bool = False
38
+
39
+ def get(self, key: str, default: str = "") -> str:
40
+ """Retrieve a configuration value by key.
41
+
42
+ @param key The configuration key to look up.
43
+ @param default Fallback value if key is missing.
44
+ @return The configuration value or default.
45
+ """
46
+ # Check primary values first
47
+ if key in self.values:
48
+ return self.values[key]
49
+ # Fallback to default
50
+ return default
51
+
52
+ def __post_init__(self) -> None:
53
+ """Validate configuration after initialization.
54
+
55
+ @brief Ensures name is non-empty and normalizes values.
56
+ @raises ValueError If name is empty or whitespace.
57
+ """
58
+ if not self.name.strip():
59
+ raise ValueError("Config name cannot be empty")
60
+
61
+
62
+ class MyClass:
63
+ """Class docstring for MyClass.
64
+
65
+ @brief Base class demonstrating various Python constructs.
66
+ @details Includes nested classes, properties, and static methods.
67
+ """
68
+
69
+ class InnerHelper:
70
+ """Nested helper class for internal data grouping.
71
+
72
+ @brief Handles auxiliary computations within MyClass scope.
73
+ """
74
+ def __init__(self, tag: str):
75
+ """Initialize the helper with a tag identifier.
76
+
77
+ @param tag Short label for categorization.
78
+ """
79
+ self.tag = tag
80
+
81
+ def describe(self) -> str:
82
+ """Return a formatted description of this helper.
83
+
84
+ @return String combining class name and tag.
85
+ """
86
+ return f"Helper({self.tag})"
87
+
88
+ def __init__(self, name: str, retries: int = MAX_RETRIES):
89
+ """Initialize MyClass with a name and retry count.
90
+
91
+ @param name Identifier for this instance.
92
+ @param retries Maximum retry attempts; defaults to MAX_RETRIES.
93
+ """
94
+ self._name = name
95
+ self._retries = retries
96
+ # Internal counter tracks invocation count
97
+ self._call_count = 0
98
+
99
+ @property
100
+ def name(self) -> str:
101
+ """Read-only property exposing the instance name.
102
+
103
+ @return The name string set during initialization.
104
+ """
105
+ return self._name
106
+
107
+ @name.setter
108
+ def name(self, value: str) -> None:
109
+ """Set the instance name after validation.
110
+
111
+ @param value New name; must be non-empty.
112
+ @raises ValueError If value is empty.
113
+ """
114
+ if not value:
115
+ raise ValueError("Name cannot be empty")
116
+ self._name = value
117
+
118
+ @staticmethod
119
+ def create_default() -> "MyClass":
120
+ """Factory method to build a MyClass with default settings.
121
+
122
+ @return A new MyClass instance with name='default'.
123
+ """
124
+ return MyClass("default")
125
+
126
+ @classmethod
127
+ def from_dict(cls, data: dict) -> "MyClass":
128
+ """Construct a MyClass from a dictionary payload.
129
+
130
+ @param data Dictionary with 'name' and optional 'retries' keys.
131
+ @return A new instance populated from data.
132
+ @raises KeyError If 'name' key is missing.
133
+ """
134
+ return cls(
135
+ name=data["name"],
136
+ retries=data.get("retries", MAX_RETRIES),
137
+ )
138
+
139
+ def process(self, items: List[str], *, verbose: bool = False) -> Optional[str]:
140
+ """Process a list of string items with optional logging.
141
+
142
+ @param items List of strings to process sequentially.
143
+ @param verbose Enable detailed logging when True.
144
+ @return The first valid item found or None if all are empty.
145
+ """
146
+ self._call_count += 1
147
+ for item in items:
148
+ # Skip empty entries
149
+ if not item.strip():
150
+ continue
151
+ if verbose:
152
+ print(f"Processing: {item}")
153
+ # Conditional return on first valid item
154
+ return item if len(item) > 1 else item.upper()
155
+ return None
156
+
157
+ def compute(self, x: int, y: int) -> int:
158
+ """Compute a value using conditional assignment on return.
159
+
160
+ @param x First operand.
161
+ @param y Second operand.
162
+ @return Sum if both positive, difference otherwise.
163
+ """
164
+ # Ternary return with compound condition
165
+ return (x + y) if (x > 0 and y > 0) else abs(x - y)
166
+
167
+
168
+ class AbstractProcessor(ABC):
169
+ """Abstract base class for all data processors.
170
+
171
+ @brief Defines the interface that concrete processors must implement.
172
+ @details ABC-based interface with abstract methods.
173
+ @note Subclasses must implement execute() and execute_async().
174
+ @see ConcreteProcessor for a working implementation.
175
+ @sa ABC documentation for abstract base class patterns.
176
+ """
177
+
178
+ @abstractmethod
179
+ def execute(self, data: bytes) -> bool:
180
+ """Execute processing on raw byte data.
181
+
182
+ @param data The raw input bytes to process.
183
+ @return True if processing succeeded, False otherwise.
184
+ """
185
+ ...
186
+
187
+ @abstractmethod
188
+ async def execute_async(self, data: bytes) -> bool:
189
+ """Asynchronous variant of execute.
190
+
191
+ @param data The raw input bytes to process.
192
+ @return True if processing succeeded.
193
+ """
194
+ ...
195
+
196
+
197
+ class ConcreteProcessor(AbstractProcessor):
198
+ """Concrete implementation of AbstractProcessor.
199
+
200
+ @brief Processes byte data by decoding and validating content.
201
+ @details Implements synchronous and async execute methods.
202
+ @note Thread-safe for read operations.
203
+ @see AbstractProcessor for interface definition.
204
+ """
205
+
206
+ def execute(self, data: bytes) -> bool:
207
+ """Decode and validate byte data synchronously.
208
+
209
+ @param data Raw bytes, expected UTF-8 encoded text.
210
+ @return True if decoding and validation succeed.
211
+ @raises UnicodeDecodeError Propagated if data is not valid UTF-8.
212
+ """
213
+ try:
214
+ text = data.decode("utf-8")
215
+ # Validate non-empty after decode
216
+ return bool(text.strip())
217
+ except UnicodeDecodeError:
218
+ return False
219
+ finally:
220
+ # Ensure cleanup regardless of outcome
221
+ pass
222
+
223
+ async def execute_async(self, data: bytes) -> bool:
224
+ """Async decode and validate byte data.
225
+
226
+ @param data Raw bytes to process asynchronously.
227
+ @return True if valid content found.
228
+ """
229
+ return self.execute(data)
230
+
231
+
232
+ class GenericContainer(Generic[T]):
233
+ """Generic container holding items of type T.
234
+
235
+ @brief Type-safe collection with iteration and lookup support.
236
+ @details Generic collection with find and iteration.
237
+ @tparam T The element type stored in this container.
238
+ @note Implements __iter__ for iteration protocol.
239
+ @see typing.Generic for generics documentation.
240
+ """
241
+
242
+ def __init__(self) -> None:
243
+ """Initialize an empty container."""
244
+ self._items: List[T] = []
245
+
246
+ def add(self, item: T) -> None:
247
+ """Append an item to the container.
248
+
249
+ @param item Element of type T to add.
250
+ """
251
+ self._items.append(item)
252
+
253
+ def __iter__(self) -> Iterator[T]:
254
+ """Iterate over contained items.
255
+
256
+ @return Iterator yielding items of type T.
257
+ """
258
+ yield from self._items
259
+
260
+ def find(self, predicate) -> Optional[T]:
261
+ """Find the first item matching a predicate function.
262
+
263
+ @param predicate Callable accepting T and returning bool.
264
+ @return The first matching item or None.
265
+ """
266
+ for item in self._items:
267
+ if predicate(item):
268
+ return item
269
+ return None
270
+
271
+
272
+ class Renderable(Protocol):
273
+ """Protocol defining objects that can render to string.
274
+
275
+ @brief Structural typing interface for render-capable objects.
276
+ """
277
+
278
+ def render(self) -> str:
279
+ """Produce a string representation.
280
+
281
+ @return Rendered string output.
282
+ """
283
+ ...
284
+
285
+
286
+ @property # type: ignore[arg-type] #!< @brief Property decorator. @details Converts function to property.
287
+ def regular_function(x: int) -> int:
288
+ """Simple function demonstrating decorator and return.
289
+
290
+ @param x Input integer value.
291
+ @return The input value unchanged.
292
+ """
293
+ return x
294
+
295
+
296
+ def function_with_walrus(data: List[int]) -> Optional[int]:
297
+ """Demonstrate the walrus operator in conditional expressions.
298
+
299
+ @param data List of integers to scan.
300
+ @return The first value greater than 10, or None.
301
+ """
302
+ # Walrus operator assigns and tests in one expression
303
+ if (n := next((x for x in data if x > 10), None)) is not None:
304
+ return n
305
+ return None
306
+
307
+
308
+ def multi_return_paths(value: int) -> Union[str, int, None]:
309
+ """Function with multiple return paths and match statement.
310
+
311
+ @param value Integer selector for branching logic.
312
+ @return A string, integer, or None depending on value.
313
+ """
314
+ match value:
315
+ case 0:
316
+ return "zero"
317
+ case n if n < 0:
318
+ # Negative values return absolute
319
+ return abs(n)
320
+ case n if n > 100:
321
+ return None
322
+ case _:
323
+ return str(value)
324
+
325
+
326
+ def generator_function(limit: int) -> Iterator[int]:
327
+ """Generator yielding squared values up to a limit.
328
+
329
+ @param limit Upper bound (exclusive) for generation.
330
+ @yield Squared integers from 0 to limit-1.
331
+ """
332
+ for i in range(limit):
333
+ # Yield computed square
334
+ yield i * i
335
+
336
+
337
+ async def async_generator(items: List[str]) -> AsyncIterator[str]:
338
+ """Async generator that yields processed strings.
339
+
340
+ @param items Source strings to process.
341
+ @yield Upper-cased non-empty strings.
342
+ """
343
+ for item in items:
344
+ if item.strip():
345
+ yield item.upper()
346
+
347
+
348
+ @contextmanager #!< @brief Context manager decorator. @see contextlib.contextmanager
349
+ def managed_resource(path: str):
350
+ """Context manager for safe resource acquisition and release.
351
+
352
+ @param path File system path to the resource.
353
+ @yield The opened file handle.
354
+ @raises IOError If the resource cannot be opened.
355
+ """
356
+ f = open(path, "r")
357
+ try:
358
+ yield f
359
+ finally:
360
+ f.close()
361
+
362
+
363
+ def closure_factory(multiplier: int):
364
+ """Create a closure that multiplies its argument.
365
+
366
+ @param multiplier The fixed multiplier for the returned function.
367
+ @return A callable that multiplies input by multiplier.
368
+ """
369
+ def inner(x: int) -> int:
370
+ """Inner closure performing the multiplication.
371
+
372
+ @param x Value to multiply.
373
+ @return Product of x and the captured multiplier.
374
+ """
375
+ # Captures multiplier from enclosing scope
376
+ return x * multiplier
377
+ return inner
378
+
379
+
380
+ def uses_unpacking(*args: int, **kwargs: str) -> Dict[str, Union[int, str]]:
381
+ """Demonstrate variadic arguments and unpacking.
382
+
383
+ @param args Positional integer arguments.
384
+ @param kwargs Named string arguments.
385
+ @return Combined dictionary of all arguments.
386
+ """
387
+ result: Dict[str, Union[int, str]] = {}
388
+ for i, val in enumerate(args):
389
+ result[f"arg_{i}"] = val
390
+ result.update(kwargs)
391
+ return result
392
+
393
+
394
+ # Lambda assigned to a variable for inline transforms
395
+ transform = lambda x: x * 2 + 1 # noqa: E731
396
+
397
+ # List comprehension with conditional filtering
398
+ EVEN_SQUARES = [x ** 2 for x in range(20) if x % 2 == 0]
399
+
400
+
401
+ async def async_function():
402
+ """Standalone async coroutine awaiting a no-op.
403
+
404
+ @brief Minimal async function for testing async detection.
405
+ """
406
+ await asyncio.sleep(0)
407
+
408
+
409
+ def deeply_nested_logic(matrix: List[List[int]]) -> int:
410
+ """Process a matrix with deeply nested control flow.
411
+
412
+ @param matrix 2D list of integers.
413
+ @return Cumulative sum of positive even values.
414
+ """
415
+ total = 0
416
+ for row in matrix:
417
+ for val in row:
418
+ if val > 0:
419
+ if val % 2 == 0:
420
+ # Accumulate positive evens
421
+ total += val
422
+ else:
423
+ continue
424
+ else:
425
+ # Skip non-positive values
426
+ pass
427
+ return total
428
+
429
+
430
+ def exception_handling_example(path: str) -> Optional[str]:
431
+ """Demonstrate comprehensive exception handling patterns.
432
+
433
+ @param path File path to attempt reading.
434
+ @return File contents or None on failure.
435
+ """
436
+ try:
437
+ with open(path, "r") as f:
438
+ content = f.read()
439
+ if not content:
440
+ raise ValueError("Empty file")
441
+ return content
442
+ except FileNotFoundError:
443
+ # File does not exist
444
+ return None
445
+ except (PermissionError, OSError) as e: # noqa: F841
446
+ # Access denied or OS-level error
447
+ sys.exit(1)
448
+ except Exception:
449
+ raise
450
+ finally:
451
+ # Cleanup runs regardless of outcome
452
+ pass
453
+
454
+ # coverage extension pre-line comment
455
+ MAX_BATCH = 64 # inline extension comment
456
+ # another variable comment
457
+ CACHE_LIMIT = 128
458
+ """coverage extension multiline comment for parser fixtures"""
459
+ MAX_USERS = 500
460
+
461
+ # REQ-COVER-SRS-231 START
462
+ # @REQ-COVER-SRS-231 block 1
463
+ # @brief Coverage helper construct 1.
464
+ # @details Provides deterministic fixture-level Doxygen coverage block 1.
465
+ # @param value Input value for helper construct 1.
466
+ # @return Output value for helper construct 1.
467
+ def req_cover_py_1(value: int) -> int:
468
+ return value + 1
469
+
470
+ # @REQ-COVER-SRS-231 block 2
471
+ # @brief Coverage helper construct 2.
472
+ # @details Provides deterministic fixture-level Doxygen coverage block 2.
473
+ # @param value Input value for helper construct 2.
474
+ # @return Output value for helper construct 2.
475
+ def req_cover_py_2(value: int) -> int:
476
+ return value + 2
477
+
478
+ # @REQ-COVER-SRS-231 block 3
479
+ # @brief Coverage helper construct 3.
480
+ # @details Provides deterministic fixture-level Doxygen coverage block 3.
481
+ # @param value Input value for helper construct 3.
482
+ # @return Output value for helper construct 3.
483
+ def req_cover_py_3(value: int) -> int:
484
+ return value + 3
485
+
486
+ # @REQ-COVER-SRS-231 block 4
487
+ # @brief Coverage helper construct 4.
488
+ # @details Provides deterministic fixture-level Doxygen coverage block 4.
489
+ # @param value Input value for helper construct 4.
490
+ # @return Output value for helper construct 4.
491
+ def req_cover_py_4(value: int) -> int:
492
+ return value + 4
493
+
494
+ # @REQ-COVER-SRS-231 block 5
495
+ # @brief Coverage helper construct 5.
496
+ # @details Provides deterministic fixture-level Doxygen coverage block 5.
497
+ # @param value Input value for helper construct 5.
498
+ # @return Output value for helper construct 5.
499
+ def req_cover_py_5(value: int) -> int:
500
+ return value + 5
501
+
502
+ # REQ-COVER-SRS-231 END