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
package/.g.conf ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "master": "master",
3
+ "develop": "develop",
4
+ "work": "work",
5
+ "default_commit_module": "",
6
+ "ver_rules": [
7
+ {
8
+ "pattern": "README.md",
9
+ "regex": "\\s*\\((\\d+\\.\\d+\\.\\d+)\\)\\n"
10
+ },
11
+ {
12
+ "pattern": "src/**/*.ts",
13
+ "regex": "VERSION\\s*=\\s*[\"\\']?(\\d+\\.\\d+\\.\\d+)[\"\\']?"
14
+ },
15
+ {
16
+ "pattern": "package.json",
17
+ "regex": "\"version\"\\s*:\\s*\"(\\d+\\.\\d+\\.\\d+)\""
18
+ }
19
+ ]
20
+ }
@@ -0,0 +1,131 @@
1
+ name: Release (npm)
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v[0-9]+.[0-9]+.[0-9]+' # push di una versione canonica (es. v1.2.3) senza pre-release
7
+
8
+ permissions:
9
+ contents: write
10
+ id-token: write
11
+ attestations: write
12
+
13
+ env:
14
+ NODE_VERSION: '22.22.2'
15
+
16
+ jobs:
17
+ # 1. Controlla se siamo sul branch corretto
18
+ check-branch:
19
+ runs-on: ubuntu-latest
20
+ outputs:
21
+ is_master: ${{ steps.check.outputs.is_master }}
22
+ steps:
23
+ - name: Checkout
24
+ uses: actions/checkout@v5
25
+ with:
26
+ fetch-depth: 0
27
+
28
+ - name: Check if tag is on master
29
+ id: check
30
+ run: |
31
+ git fetch origin master
32
+ if git branch -r --contains ${GITHUB_SHA} | grep -q "origin/master"; then
33
+ echo "✅ Tag ${{ github.ref }} is on master branch. Proceeding with release."
34
+ echo "is_master=true" >> "$GITHUB_OUTPUT"
35
+ else
36
+ echo "❌ Tag ${{ github.ref }} is not on master branch. Skipping release."
37
+ echo "is_master=false" >> "$GITHUB_OUTPUT"
38
+ fi
39
+
40
+ # 2. Effetua la build
41
+ build-release:
42
+ needs: check-branch
43
+ # Esegue questo job SOLO se l'output del job precedente è 'true'
44
+ if: needs.check-branch.outputs.is_master == 'true'
45
+ runs-on: ubuntu-latest
46
+
47
+ steps:
48
+ - name: Checkout
49
+ uses: actions/checkout@v5
50
+ with:
51
+ fetch-depth: 0
52
+
53
+ - name: Setup Node.js
54
+ uses: actions/setup-node@v4
55
+ with:
56
+ node-version: ${{ env.NODE_VERSION }}
57
+ cache: 'npm'
58
+ registry-url: 'https://registry.npmjs.org'
59
+
60
+ - name: Install dependencies
61
+ run: npm ci
62
+
63
+ - name: Remove private package flag
64
+ run: npm pkg delete private
65
+
66
+ - name: Publish package to npm
67
+ run: npm publish --provenance --access public
68
+ env:
69
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
70
+
71
+ - name: Build Changelog
72
+ id: build_changelog
73
+ uses: mikepenz/release-changelog-builder-action@v6
74
+ with:
75
+ mode: "COMMIT"
76
+ configurationJson: |
77
+ {
78
+ "categories": [
79
+ { "title": "## ⛰️ Features", "labels": ["new"] },
80
+ { "title": "## 🏗️ Implementations", "labels": ["implement"] },
81
+ { "title": "## 🐛 Bug Fixes", "labels": ["fix"] },
82
+ { "title": "## 🚜 Changes", "labels": ["change"] },
83
+ { "title": "## 🎯 Cover Requirements", "labels": ["cover"] },
84
+ { "title": "## ✨ Refactor", "labels": ["refactor"] },
85
+ { "title": "## 📚 Documentation", "labels": ["docs"] },
86
+ { "title": "## 🎨 Styling", "labels": ["style"] },
87
+ { "title": "## ◀️ Revert", "labels": ["revert"] },
88
+ { "title": "## ⚙️ Miscellaneous Tasks", "labels": ["misc"] },
89
+ { "title": "## 💬 Other", "labels": ["other"] },
90
+ { "title": "## ❓ Unknown", "labels": ["unknown"] },
91
+ { "title": "## 🚀 Release", "labels": ["release"] }
92
+ ],
93
+ "ignore_labels": [
94
+ "release",
95
+ "ignore"
96
+ ],
97
+ "transformers": [
98
+ {
99
+ "pattern": "^[^\\(:\\s]+(\\([^\\)]+\\))?!?:\\s+([\\S]+[\\s\\S]*)",
100
+ "target": "$2 $1"
101
+ }
102
+ ],
103
+ "sort": {
104
+ "order": "ASC",
105
+ "on_property": "mergedAt"
106
+ },
107
+ "template": "#{{CHANGELOG}}\n\n<details>\n<summary>Uncategorized</summary>\n\n#{{UNCATEGORIZED}}\n</details>\n\n**Full Changelog**: [#{{FROM_TAG}}...#{{TO_TAG}}](https://github.com/#{{OWNER}}/#{{REPO}}/compare/#{{FROM_TAG}}...#{{TO_TAG}})",
108
+ "label_extractor": [
109
+ {
110
+ "pattern": "^([^\\(:\\s]+)(\\([^\\)]+\\))?(!)?:\\s+([\\S]+[\\s\\S]*)",
111
+ "on_property": "title",
112
+ "target": "$1"
113
+ }
114
+ ]
115
+ }
116
+ env:
117
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
118
+
119
+ - name: Create GitHub Release and upload assets
120
+ uses: softprops/action-gh-release@v2
121
+ with:
122
+ draft: false
123
+ prerelease: false
124
+ files: src/**/*
125
+ fail_on_unmatched_files: true
126
+ generate_release_notes: false
127
+ tag_name: ${{ github.ref_name }}
128
+ name: ${{github.event.repository.name}} ${{ github.ref_name }}
129
+ body: ${{ steps.build_changelog.outputs.changelog }}
130
+ env:
131
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
package/.gitignore ADDED
@@ -0,0 +1,270 @@
1
+ ##########################################
2
+ # Exlude all files by default #
3
+ # (unignore rules will override this) #
4
+ ##########################################
5
+ /*
6
+ *.*
7
+ */**
8
+
9
+ ##########################################
10
+ # Include specific files and directories #
11
+ ##########################################
12
+ !/.github/
13
+ !/.github/workflows/
14
+ !/.github/workflows/**/*.yml
15
+ !/.github/workflows/
16
+ !/.github/workflows/**/*.yaml
17
+ !/.gitignore
18
+ !README.md
19
+ !CHANGELOG.md
20
+ !WORKFLOW.md
21
+ !TODO.md
22
+ !LICENSE
23
+ !LICENSE.txt
24
+ !setup.py
25
+ !pyproject.toml
26
+ !uv.lock
27
+ !.g.conf
28
+ !package-lock.json
29
+ !package.json
30
+ !src/
31
+ !src/**/*
32
+ !docs/
33
+ !docs/**/*
34
+ !guidelines/
35
+ !guidelines/**/*
36
+ !tests/
37
+ !tests/**/*
38
+ !other-stuff/
39
+ !other-stuff/**/*
40
+ !scripts/
41
+ !scripts/lib/
42
+ !scripts/**/*.sh
43
+ !scripts/**/*.ts
44
+ !req/
45
+ !req/docs/
46
+ !req/docs/**/*.md
47
+ !images/
48
+ !images/**/*
49
+
50
+ ##########################################
51
+ # Exlucde specific files and directories #
52
+ ##########################################
53
+
54
+ # Exlude github agents and prompts
55
+ .github/agents/
56
+ .github/prompts/
57
+ .github/skills/
58
+
59
+ # Byte-compiled / optimized / DLL files
60
+ __pycache__/
61
+ *.py[codz]
62
+ *$py.class
63
+
64
+ # C extensions
65
+ *.so
66
+
67
+ # Distribution / packaging
68
+ .Python
69
+ build/
70
+ develop-eggs/
71
+ dist/
72
+ downloads/
73
+ eggs/
74
+ .eggs/
75
+ lib/
76
+ !scripts/lib/
77
+ !scripts/lib/**/*.ts
78
+ lib64/
79
+ parts/
80
+ sdist/
81
+ var/
82
+ wheels/
83
+ share/python-wheels/
84
+ *.egg-info/
85
+ .installed.cfg
86
+ *.egg
87
+ MANIFEST
88
+
89
+ # PyInstaller
90
+ # Usually these files are written by a python script from a template
91
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
92
+ *.manifest
93
+ *.spec
94
+
95
+ # Installer logs
96
+ pip-log.txt
97
+ pip-delete-this-directory.txt
98
+
99
+ # Unit test / coverage reports
100
+ htmlcov/
101
+ .tox/
102
+ .nox/
103
+ .coverage
104
+ .coverage.*
105
+ .cache
106
+ nosetests.xml
107
+ coverage.xml
108
+ *.cover
109
+ *.py.cover
110
+ .hypothesis/
111
+ .pytest_cache/
112
+ cover/
113
+
114
+ # Translations
115
+ *.mo
116
+ *.pot
117
+
118
+ # Django stuff:
119
+ *.log
120
+ local_settings.py
121
+ db.sqlite3
122
+ db.sqlite3-journal
123
+
124
+ # Flask stuff:
125
+ instance/
126
+ .webassets-cache
127
+
128
+ # Scrapy stuff:
129
+ .scrapy
130
+
131
+ # Sphinx documentation
132
+ docs/_build/
133
+
134
+ # PyBuilder
135
+ .pybuilder/
136
+ target/
137
+
138
+ # Jupyter Notebook
139
+ .ipynb_checkpoints
140
+
141
+ # IPython
142
+ profile_default/
143
+ ipython_config.py
144
+
145
+ # pyenv
146
+ # For a library or package, you might want to ignore these files since the code is
147
+ # intended to run in multiple environments; otherwise, check them in:
148
+ # .python-version
149
+
150
+ # pipenv
151
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
152
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
153
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
154
+ # install all needed dependencies.
155
+ #Pipfile.lock
156
+
157
+ # UV
158
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
159
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
160
+ # commonly ignored for libraries.
161
+ #uv.lock
162
+
163
+ # poetry
164
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
165
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
166
+ # commonly ignored for libraries.
167
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
168
+ #poetry.lock
169
+ #poetry.toml
170
+
171
+ # pdm
172
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
173
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
174
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
175
+ #pdm.lock
176
+ #pdm.toml
177
+ .pdm-python
178
+ .pdm-build/
179
+
180
+ # pixi
181
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
182
+ #pixi.lock
183
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
184
+ # in the .venv directory. It is recommended not to include this directory in version control.
185
+ .pixi
186
+
187
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
188
+ __pypackages__/
189
+
190
+ # Celery stuff
191
+ celerybeat-schedule
192
+ celerybeat.pid
193
+
194
+ # SageMath parsed files
195
+ *.sage.py
196
+
197
+ # Environments
198
+ .env
199
+ .envrc
200
+ .venv
201
+ env/
202
+ venv/
203
+ ENV/
204
+ env.bak/
205
+ venv.bak/
206
+
207
+ # Spyder project settings
208
+ .spyderproject
209
+ .spyproject
210
+
211
+ # Rope project settings
212
+ .ropeproject
213
+
214
+ # mkdocs documentation
215
+ /site
216
+
217
+ # mypy
218
+ .mypy_cache/
219
+ .dmypy.json
220
+ dmypy.json
221
+
222
+ # Pyre type checker
223
+ .pyre/
224
+
225
+ # pytype static type analyzer
226
+ .pytype/
227
+
228
+ # Cython debug symbols
229
+ cython_debug/
230
+
231
+ # PyCharm
232
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
233
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
234
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
235
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
236
+ #.idea/
237
+
238
+ # Abstra
239
+ # Abstra is an AI-powered process automation framework.
240
+ # Ignore directories containing user credentials, local state, and settings.
241
+ # Learn more at https://abstra.io/docs
242
+ .abstra/
243
+
244
+ # Visual Studio Code
245
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
246
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
247
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
248
+ # you could uncomment the following to ignore the entire vscode folder
249
+ .vscode/
250
+
251
+ # Ruff stuff:
252
+ .ruff_cache/
253
+
254
+ # PyPI configuration file
255
+ .pypirc
256
+
257
+ # Cursor
258
+ # Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
259
+ # exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
260
+ # refer to https://docs.cursor.com/context/ignore-files
261
+ .cursorignore
262
+ .cursorindexingignore
263
+
264
+ # Marimo
265
+ marimo/_static/
266
+ marimo/_lsp/
267
+ __marimo__/
268
+
269
+ # Temp dir for tests
270
+ temp/
package/CHANGELOG.md ADDED
@@ -0,0 +1,221 @@
1
+ # Changelog
2
+
3
+ ## [0.4.0](https://github.com/Ogekuri/PI-useReq/compare/v0.3.0..v0.4.0) - 2026-04-19
4
+ ### 🚜 Changes
5
+ - add npm provenance metadata and release checks [useReq] *(package)*
6
+ - add canonical repository, bugs, and homepage metadata for npm provenance
7
+ - update SRS with REQ-157, REQ-158, and TST-044
8
+ - align release workflow Node setup action with release test expectations
9
+ - extend release-workflow tests for package provenance metadata
10
+
11
+ ## [0.3.0](https://github.com/Ogekuri/PI-useReq/compare/v0.2.0..v0.3.0) - 2026-04-19
12
+ ### 🐛 Bug Fixes
13
+ - Fix .github/workflows/release-npm.yml file.
14
+
15
+ ### 🚜 Changes
16
+ - BREAKING CHANGE: align extension theme tokens with cli themes [useReq] *(settings-menu)*
17
+ - update requirements for CLI-theme token semantics
18
+ - switch status overflow overlay from legacy redBright to error
19
+ - reuse shared settings-list theming with offline fallback
20
+ - extend menu and status tests for theme-token contracts
21
+
22
+ ## [0.2.0](https://github.com/Ogekuri/PI-useReq/compare/v0.1.0..v0.2.0) - 2026-04-19
23
+ ### ⛰️ Features
24
+ - Add release-npm.yml file.
25
+ - add configurable prompt beep and sound hooks [useReq] *(notify)*
26
+ - extend SRS with pi-notify beep and sound requirements
27
+ - add pi-notify config, status, and agent_end handlers
28
+ - add configurable shortcut, menu controls, and sound commands
29
+ - update extension and debug harness tests for new status fields
30
+
31
+ ### 🐛 Bug Fixes
32
+ - Fix .github/workflows/release-npm.yml file.
33
+
34
+ ### 🚜 Changes
35
+ - publish pi-usereq in release workflow [useReq] *(release-npm)*
36
+ - update REQ-138 REQ-141 and add REQ-155/TST-042
37
+ - keep existing tag trigger and changelog release flow intact
38
+ - add npm setup and publish steps plus workflow assertions
39
+ - BREAKING CHANGE: derive runtime paths and restyle config menus [useReq] *(pi-usereq)*
40
+ - Update requirements for runtime-only base/git paths.
41
+ - Adopt shared settings-style menus with show-config submenu.
42
+ - Switch notify defaults to %%INSTALLATION_PATH%% and alt+s.
43
+ - Add status-bar git/base fields and CLEAR/FULL overlays.
44
+ - Refresh references and workflow documentation.
45
+ - wire npm publish workflow and requirements [useReq] *(release-npm)*
46
+ - update REQUIREMENTS.md with release workflow requirements and evidence
47
+ - implement tag-gated npm publication and GitHub Release automation
48
+ - add workflow-focused verification test and runtime model updates
49
+
50
+ ## [0.1.0](https://github.com/Ogekuri/PI-useReq/releases/tag/v0.1.0) - 2026-04-19
51
+ ### ⛰️ Features
52
+ - Add src/resources/sounds/ files.
53
+ - add hook-driven status telemetry [useReq] *(extension-status)*
54
+ - extend requirements for lifecycle hook interception and status fields
55
+ - add shared extension status controller for context, elapsed, and last
56
+ - update offline replay and registration tests for the new status contract
57
+ - enforce pi.dev manifest API contract guidance [useReq] *(prompts)*
58
+ - Add DES-009, REQ-108, and TST-030.
59
+ - Require rendered pi.dev conformance blocks to treat the manifest as the authoritative API contract.
60
+ - Extend prompt-rendering verification and refresh workflow/reference docs.
61
+ - Trace-ID: REQ-108-20260418
62
+ - Update prompts.
63
+ - add req-debug wrapper and requirement traceability [useReq] *(debug-harness)*
64
+ - extend REQUIREMENTS.md with wrapper requirements for debug harness access
65
+ - add scripts/req-debug.sh for inspect, session, prompt, tool, sdk, and raw flows
66
+ - refresh WORKFLOW.md and REFERENCES.md for the new bash execution surface
67
+ - add offline harness and sdk smoke [useReq] *(debug-extension)*
68
+ - extend REQUIREMENTS.md for standalone extension debugging and parity validation
69
+ - add scripts/debug-extension.ts with recording, replay, and sdk-smoke modules
70
+ - add harness-focused tests and refresh WORKFLOW.md/REFERENCES.md
71
+ - archive expected CLI outputs [useReq] *(tests)*
72
+ - add archive-backed CLI output scenarios and verification tests
73
+ - commit expected results under tests/fixtures_attended_results
74
+ - extend requirements for normalized expected-result archives
75
+ - align invalid enable-static-check error text with archived output
76
+ - add command option parity coverage [useReq] *(cli)*
77
+ - add CLI static-check enablement merge and validation support
78
+ - route verbose command options through standalone dispatch
79
+ - fix clean-repository git-check validation behavior
80
+ - add TypeScript parity regressions and supporting test helpers
81
+ - update requirements, workflow, references, tsconfig, and eslint config
82
+ - Fix source code doxygen documentation.
83
+ - Update manifest.
84
+ - add pi.dev manifest conformance guidance [useReq] *(prompts)*
85
+ - add REQ-032..REQ-034 and TST-011 for pi.dev-aware prompts
86
+ - inject manifest-gated conformance rules during prompt rendering
87
+ - cover manifest present and absent prompt-rendering cases
88
+ - Initial commit.
89
+
90
+ ### 🐛 Bug Fixes
91
+ - route reset-context prompts via session_start [useReq] *(prompt)*
92
+ - queue reset-context prompt payloads in new-session setup instead of using the stale runtime
93
+ - consume queued prompt payloads from the replacement session_start handler exactly once
94
+ - add a runtime-replacement reproducer test and refresh workflow/reference docs
95
+ - start reset-context sessions with user delivery [useReq] *(prompt)*
96
+ - send req-* prompt content after ctx.newSession() so the new session starts a turn
97
+ - replace the reset-context reproducer to assert post-reset user delivery
98
+ - refresh workflow and references docs for the shared prompt-delivery path
99
+ - append reset prompt during session setup [useReq] *(prompt-delivery)*
100
+ - route reset-context prompt delivery through ctx.newSession setup
101
+ - add req-workflow regression coverage for reset-session prompt startup
102
+ - refresh workflow and references docs for the updated runtime path
103
+ - deliver reset prompts via sendUserMessage [useReq] *(prompt-commands)*
104
+ - restore post-reset prompt delivery through pi.sendUserMessage
105
+ - add req-create regression coverage for reset-context=true
106
+ - refresh WORKFLOW and REFERENCES for the updated call path
107
+ - inject reset prompt during new session setup [useReq] *(index)*
108
+ - move reset-context prompt delivery into ctx.newSession setup
109
+ - update prompt command regression coverage
110
+ - refresh workflow and references documentation
111
+ - send prompt after reset-session creation [useReq] *(prompt-command)*
112
+ - Add a targeted reproducer for reset-context prompt delivery.
113
+ - Deliver req-* prompts by creating the new session first.
114
+ - Send the rendered prompt through pi.sendUserMessage after reset.
115
+ - Update WORKFLOW and REFERENCES for the changed call trace.
116
+ - Fix version number to 0.0.0.
117
+
118
+ ### 🚜 Changes
119
+ - add context bar overlay thresholds [useReq] *(extension-status)*
120
+ - REQ-127/REQ-128 add claer and full! overlay states.
121
+ - TST-035/TST-036 verify empty and above-90-percent context cases.
122
+ - Update workflow and references for the new status rendering path.
123
+ - BREAKING CHANGE: remove context-reset prompt flow and status field [useReq] *(index)*
124
+ - Update SRS for branchless current-session prompt delivery.
125
+ - Remove reset-context config, menu entries, status output, and replacement-session flow.
126
+ - Align offline recording and extension-registration tests with the breaking change.
127
+ - compact pi-usereq status summary [useReq] *(status-bar)*
128
+ - REQ-009/109/110/111: switch to single-line status output
129
+ - Record active-tool count and compact context mode
130
+ - Align offline replay with reset-context prompt capture
131
+ - render colored multiline config status [useReq] *(status-bar)*
132
+ - update REQUIREMENTS.md for multi-line colored status-bar fields\n- implement explicit docs/tests/src, tools, and reset-context rendering\n- refresh workflow/references docs and extend status replay tests
133
+ - BREAKING CHANGE: rename wrapper and disable find by default [useReq] *(debug-harness)*
134
+ - Update REQUIREMENTS, WORKFLOW, and REFERENCES.
135
+ - Switch debug wrapper path to scripts/pi-usereq-debug.sh.
136
+ - Disable custom find in default startup-tool configuration.
137
+ - Refresh debug manual examples to pi-usereq/docs paths.
138
+ - Adjust targeted tests for wrapper rename and default tool state.
139
+ - default docs-dir to pi-usereq/docs [useReq] *(config)*
140
+ - update CTN-001 for the new default docs directory
141
+ - switch DEFAULT_DOCS_DIR to pi-usereq/docs
142
+ - align fixture and registration tests with the new default
143
+ - regenerate REFERENCES.md for updated symbol locations
144
+ - derive runtime paths from installation context [useReq] *(core)*
145
+ - update SRS for installation-path and execution-path derivation
146
+ - persist config under .pi-usereq and copy that directory into worktrees
147
+ - resolve prompt resources from installation-owned resources tree
148
+ - expose runtime path facts in structured tool payloads
149
+ - refresh workflow and references docs for the new path context
150
+ - remove unused bundled model metadata [useReq] *(resources)*
151
+ - update PRJ-005 and repository evidence for bundled resources
152
+ - delete unused models and vscode settings resource files
153
+ - keep runtime behavior limited to prompt, template, and guideline provisioning
154
+ - rename bundled templates path [useReq] *(resources)*
155
+ - rename src/resources/docs to src/resources/templates
156
+ - replace %%TEMPLATE_PATH%% during prompt rendering
157
+ - update requirements, workflow, references, and prompt tests
158
+ - structure tool json outputs and registrations [useReq] *(tools)*
159
+ - update general requirements for JSON-first agent-tool payloads and registrations
160
+ - implement structured utility-tool payload builders and registration metadata
161
+ - extend tests for compression and utility-tool payload and inspection coverage
162
+ - BREAKING CHANGE: refactor find tool payloads for agents [useReq] *(find)*
163
+ - update requirements for agent-oriented files-find/find payloads
164
+ - implement structured find payload builders and tool descriptions
165
+ - add focused registration and debug-harness tests
166
+ - refactor compression tool payloads for LLM JSON [useReq] *(compress)*
167
+ - update requirements, workflow, and references for the structured compression contract
168
+ - add structured compression payload generation with line, symbol, and Doxygen metadata
169
+ - keep CLI markdown compression output while tool responses and debug examples use JSON
170
+ - emit agent-oriented JSON for reference tools [useReq] *(references)*
171
+ - update requirements, workflow, and references docs for structured reference payloads
172
+ - add structured Doxygen and symbol JSON extraction for files-references and references
173
+ - refresh targeted tests and archived reference fixtures
174
+ - optimize token tool JSON payloads for agents [useReq] *(token-counter)*
175
+ - update requirements for agent-optimized files-tokens and tokens payloads
176
+ - restructure token payloads with direct-access metrics and guidance sections
177
+ - enrich tool registration metadata and add targeted extension tests
178
+ - refactor token tool JSON for agent parsing [useReq] *(token-tools)*
179
+ - REQ-010 REQ-017 REQ-069 REQ-072
180
+ - Refactor files-tokens and tokens agent-tool payloads into structured JSON.
181
+ - Add numeric summaries, canonical path fields, and guidance ordering.
182
+ - Update tool registration metadata, debug examples, and runtime docs.
183
+ - add reset-context pre-reset for req commands [useReq] *(prompt-commands)*
184
+ - update requirements, workflow, and references for reset-context
185
+ - add persisted reset-context config with default true and UI toggle
186
+ - route req-* commands through /new-equivalent session setup when enabled
187
+ - extend offline replay and tests for reset and current-session flows
188
+ - support tool --args param conversion [useReq] *(req-debug)*
189
+ - add REQ-065 and TST-021 for req-debug tool arg normalization
190
+ - convert wrapper tool --args text into debug-harness --params JSON
191
+ - add wrapper integration coverage and refresh workflow/references docs
192
+ - configure active tools for embedded pi builtins [useReq] *(index)*
193
+ - update REQUIREMENTS.md for configurable embedded active tools
194
+ - enable config defaults for read bash edit write and disable grep ls
195
+ - extend runtime and harness inventories with supported builtin tools
196
+ - cover menu and session_start behavior with targeted tests
197
+ - remove tool slash command wrappers [useReq] *(index)*
198
+ - update REQUIREMENTS.md for tool-only extension exposure\n- remove custom slash command registration for tool wrappers\n- keep agent tool registration and CLI static-check driver behavior\n- refresh workflow, references, and registration tests
199
+
200
+ ### 📚 Documentation
201
+ - Update README.md file.
202
+ - add runtime workflow model [useReq] *(core)*
203
+ - create req/docs/WORKFLOW.md from src runtime analysis
204
+ - document execution units, call traces, and communication edges
205
+ - add source reference index [useReq] *(core)*
206
+ - generate req/docs/REFERENCES.md from repository source
207
+ - capture modules, symbols, and imports for agent navigation
208
+ - Add pi.dev api documentation.
209
+
210
+
211
+ # History
212
+
213
+ - \[0.1.0\]: https://github.com/Ogekuri/PI-useReq/releases/tag/v0.1.0
214
+ - \[0.2.0\]: https://github.com/Ogekuri/PI-useReq/releases/tag/v0.2.0
215
+ - \[0.3.0\]: https://github.com/Ogekuri/PI-useReq/releases/tag/v0.3.0
216
+ - \[0.4.0\]: https://github.com/Ogekuri/PI-useReq/releases/tag/v0.4.0
217
+
218
+ [0.1.0]: https://github.com/Ogekuri/PI-useReq/releases/tag/v0.1.0
219
+ [0.2.0]: https://github.com/Ogekuri/PI-useReq/compare/v0.1.0..v0.2.0
220
+ [0.3.0]: https://github.com/Ogekuri/PI-useReq/compare/v0.2.0..v0.3.0
221
+ [0.4.0]: https://github.com/Ogekuri/PI-useReq/compare/v0.3.0..v0.4.0