code-puppy-core-plugins 0.0.2__py3-none-any.whl

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 (313) hide show
  1. code_puppy_core_plugins/__init__.py +5 -0
  2. code_puppy_core_plugins/acp/README.md +266 -0
  3. code_puppy_core_plugins/acp/__init__.py +8 -0
  4. code_puppy_core_plugins/acp/agent.py +494 -0
  5. code_puppy_core_plugins/acp/bridge.py +309 -0
  6. code_puppy_core_plugins/acp/capabilities.py +73 -0
  7. code_puppy_core_plugins/acp/commands.py +116 -0
  8. code_puppy_core_plugins/acp/content.py +115 -0
  9. code_puppy_core_plugins/acp/io_delegation.py +231 -0
  10. code_puppy_core_plugins/acp/mcp_config.py +66 -0
  11. code_puppy_core_plugins/acp/permissions.py +159 -0
  12. code_puppy_core_plugins/acp/persistence.py +197 -0
  13. code_puppy_core_plugins/acp/register_callbacks.py +110 -0
  14. code_puppy_core_plugins/acp/replay.py +114 -0
  15. code_puppy_core_plugins/acp/session.py +329 -0
  16. code_puppy_core_plugins/acp/session_config.py +179 -0
  17. code_puppy_core_plugins/acp/state.py +135 -0
  18. code_puppy_core_plugins/agent_skills/__init__.py +22 -0
  19. code_puppy_core_plugins/agent_skills/config.py +208 -0
  20. code_puppy_core_plugins/agent_skills/discovery.py +337 -0
  21. code_puppy_core_plugins/agent_skills/downloader.py +392 -0
  22. code_puppy_core_plugins/agent_skills/enabled_skills.py +82 -0
  23. code_puppy_core_plugins/agent_skills/installer.py +22 -0
  24. code_puppy_core_plugins/agent_skills/metadata.py +219 -0
  25. code_puppy_core_plugins/agent_skills/prompt_builder.py +49 -0
  26. code_puppy_core_plugins/agent_skills/provider.py +52 -0
  27. code_puppy_core_plugins/agent_skills/register_callbacks.py +309 -0
  28. code_puppy_core_plugins/agent_skills/remote_catalog.py +322 -0
  29. code_puppy_core_plugins/agent_skills/skill_catalog.py +257 -0
  30. code_puppy_core_plugins/agent_skills/skill_commands.py +102 -0
  31. code_puppy_core_plugins/agent_skills/skills_install_menu.py +698 -0
  32. code_puppy_core_plugins/agent_skills/skills_menu.py +794 -0
  33. code_puppy_core_plugins/aws_bedrock/__init__.py +14 -0
  34. code_puppy_core_plugins/aws_bedrock/config.py +101 -0
  35. code_puppy_core_plugins/aws_bedrock/register_callbacks.py +243 -0
  36. code_puppy_core_plugins/aws_bedrock/utils.py +186 -0
  37. code_puppy_core_plugins/azure_foundry/README.md +238 -0
  38. code_puppy_core_plugins/azure_foundry/__init__.py +15 -0
  39. code_puppy_core_plugins/azure_foundry/config.py +126 -0
  40. code_puppy_core_plugins/azure_foundry/discovery.py +189 -0
  41. code_puppy_core_plugins/azure_foundry/register_callbacks.py +506 -0
  42. code_puppy_core_plugins/azure_foundry/token.py +182 -0
  43. code_puppy_core_plugins/azure_foundry/utils.py +375 -0
  44. code_puppy_core_plugins/btw/__init__.py +1 -0
  45. code_puppy_core_plugins/btw/inline_view.py +135 -0
  46. code_puppy_core_plugins/btw/register_callbacks.py +106 -0
  47. code_puppy_core_plugins/btw/side_query.py +91 -0
  48. code_puppy_core_plugins/chatgpt_oauth/IMAGEGEN_SKILL.md +83 -0
  49. code_puppy_core_plugins/chatgpt_oauth/__init__.py +8 -0
  50. code_puppy_core_plugins/chatgpt_oauth/config.py +52 -0
  51. code_puppy_core_plugins/chatgpt_oauth/image_generation.py +253 -0
  52. code_puppy_core_plugins/chatgpt_oauth/image_tool.py +70 -0
  53. code_puppy_core_plugins/chatgpt_oauth/oauth_flow.py +461 -0
  54. code_puppy_core_plugins/chatgpt_oauth/register_callbacks.py +288 -0
  55. code_puppy_core_plugins/chatgpt_oauth/test_plugin.py +663 -0
  56. code_puppy_core_plugins/chatgpt_oauth/usage.py +113 -0
  57. code_puppy_core_plugins/chatgpt_oauth/utils.py +534 -0
  58. code_puppy_core_plugins/claude_code_hooks/__init__.py +1 -0
  59. code_puppy_core_plugins/claude_code_hooks/config.py +137 -0
  60. code_puppy_core_plugins/claude_code_hooks/register_callbacks.py +383 -0
  61. code_puppy_core_plugins/claude_code_oauth/README.md +167 -0
  62. code_puppy_core_plugins/claude_code_oauth/SETUP.md +93 -0
  63. code_puppy_core_plugins/claude_code_oauth/__init__.py +25 -0
  64. code_puppy_core_plugins/claude_code_oauth/config.py +59 -0
  65. code_puppy_core_plugins/claude_code_oauth/fast_mode.py +122 -0
  66. code_puppy_core_plugins/claude_code_oauth/prompt_handler.py +64 -0
  67. code_puppy_core_plugins/claude_code_oauth/register_callbacks.py +719 -0
  68. code_puppy_core_plugins/claude_code_oauth/test_plugin.py +285 -0
  69. code_puppy_core_plugins/claude_code_oauth/token_refresh_heartbeat.py +240 -0
  70. code_puppy_core_plugins/claude_code_oauth/utils.py +663 -0
  71. code_puppy_core_plugins/code_puppy_agent/AGENTS_AND_TOOLS.md +155 -0
  72. code_puppy_core_plugins/code_puppy_agent/MODELS_AND_MCP.md +104 -0
  73. code_puppy_core_plugins/code_puppy_agent/PLUGINS_AND_CALLBACKS.md +147 -0
  74. code_puppy_core_plugins/code_puppy_agent/SESSIONS_AND_HISTORY.md +39 -0
  75. code_puppy_core_plugins/code_puppy_agent/SKILL.md +180 -0
  76. code_puppy_core_plugins/code_puppy_agent/SKILLS_SYSTEM.md +136 -0
  77. code_puppy_core_plugins/code_puppy_agent/SYSTEM_PROMPT_CONFIG_AND_I18N.md +160 -0
  78. code_puppy_core_plugins/code_puppy_agent/__init__.py +5 -0
  79. code_puppy_core_plugins/code_puppy_agent/register_callbacks.py +46 -0
  80. code_puppy_core_plugins/computer_use/NativeCapture.swift +123 -0
  81. code_puppy_core_plugins/computer_use/README.md +109 -0
  82. code_puppy_core_plugins/computer_use/__init__.py +1 -0
  83. code_puppy_core_plugins/computer_use/accessibility.py +163 -0
  84. code_puppy_core_plugins/computer_use/activation.py +75 -0
  85. code_puppy_core_plugins/computer_use/backend.py +584 -0
  86. code_puppy_core_plugins/computer_use/backend_types.py +5 -0
  87. code_puppy_core_plugins/computer_use/capture.py +110 -0
  88. code_puppy_core_plugins/computer_use/commands.py +62 -0
  89. code_puppy_core_plugins/computer_use/geometry.py +81 -0
  90. code_puppy_core_plugins/computer_use/inline_image.py +56 -0
  91. code_puppy_core_plugins/computer_use/keycodes.py +47 -0
  92. code_puppy_core_plugins/computer_use/policy.py +144 -0
  93. code_puppy_core_plugins/computer_use/register_callbacks.py +96 -0
  94. code_puppy_core_plugins/computer_use/safety.py +18 -0
  95. code_puppy_core_plugins/computer_use/settle.py +64 -0
  96. code_puppy_core_plugins/computer_use/state.py +86 -0
  97. code_puppy_core_plugins/computer_use/tools.py +469 -0
  98. code_puppy_core_plugins/context_indicator/__init__.py +14 -0
  99. code_puppy_core_plugins/context_indicator/register_callbacks.py +249 -0
  100. code_puppy_core_plugins/context_indicator/usage.py +40 -0
  101. code_puppy_core_plugins/copilot_auth/__init__.py +11 -0
  102. code_puppy_core_plugins/copilot_auth/config.py +93 -0
  103. code_puppy_core_plugins/copilot_auth/reasoning_client.py +409 -0
  104. code_puppy_core_plugins/copilot_auth/register_callbacks.py +460 -0
  105. code_puppy_core_plugins/copilot_auth/utils.py +587 -0
  106. code_puppy_core_plugins/customizable_commands/__init__.py +0 -0
  107. code_puppy_core_plugins/customizable_commands/register_callbacks.py +464 -0
  108. code_puppy_core_plugins/dbos_durable_exec/__init__.py +1 -0
  109. code_puppy_core_plugins/dbos_durable_exec/cancel.py +15 -0
  110. code_puppy_core_plugins/dbos_durable_exec/commands.py +31 -0
  111. code_puppy_core_plugins/dbos_durable_exec/config.py +31 -0
  112. code_puppy_core_plugins/dbos_durable_exec/lifecycle.py +83 -0
  113. code_puppy_core_plugins/dbos_durable_exec/register_callbacks.py +45 -0
  114. code_puppy_core_plugins/dbos_durable_exec/runtime.py +65 -0
  115. code_puppy_core_plugins/dbos_durable_exec/startup_lock.py +155 -0
  116. code_puppy_core_plugins/dbos_durable_exec/workflow_ids.py +16 -0
  117. code_puppy_core_plugins/dbos_durable_exec/wrapper.py +58 -0
  118. code_puppy_core_plugins/destructive_command_guard/AGENTS.md +79 -0
  119. code_puppy_core_plugins/destructive_command_guard/__init__.py +14 -0
  120. code_puppy_core_plugins/destructive_command_guard/detector.py +374 -0
  121. code_puppy_core_plugins/destructive_command_guard/register_callbacks.py +165 -0
  122. code_puppy_core_plugins/emoji_filter/__init__.py +12 -0
  123. code_puppy_core_plugins/emoji_filter/config.py +26 -0
  124. code_puppy_core_plugins/emoji_filter/register_callbacks.py +238 -0
  125. code_puppy_core_plugins/emoji_filter/stripper.py +45 -0
  126. code_puppy_core_plugins/empty_html_comment_filter/register_callbacks.py +116 -0
  127. code_puppy_core_plugins/example_custom_command/README.md +328 -0
  128. code_puppy_core_plugins/example_custom_command/register_callbacks.py +66 -0
  129. code_puppy_core_plugins/file_permission_handler/__init__.py +4 -0
  130. code_puppy_core_plugins/file_permission_handler/register_callbacks.py +575 -0
  131. code_puppy_core_plugins/flux_bootstrap/__init__.py +5 -0
  132. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/README.md +173 -0
  133. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/cheatsheet.md +86 -0
  134. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/pipeline.md +167 -0
  135. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/synopsis.md +392 -0
  136. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/about.md +51 -0
  137. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/address-feedback.md +129 -0
  138. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/ask.md +211 -0
  139. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/aug.md +181 -0
  140. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/auto-pilot.md +71 -0
  141. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/cheatsheet.md +16 -0
  142. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/commit.md +103 -0
  143. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/config.md +108 -0
  144. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/create-pr.md +195 -0
  145. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/exec.md +221 -0
  146. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/new.md +151 -0
  147. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/qa.md +208 -0
  148. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/rebase.md +180 -0
  149. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/review.md +304 -0
  150. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/split.md +120 -0
  151. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/squash-commits.md +179 -0
  152. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/status.md +46 -0
  153. code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/tests.md +155 -0
  154. code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_about.py +154 -0
  155. code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_cheatsheet.py +248 -0
  156. code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_status.py +345 -0
  157. code_puppy_core_plugins/flux_bootstrap/installer.py +256 -0
  158. code_puppy_core_plugins/flux_bootstrap/register_callbacks.py +71 -0
  159. code_puppy_core_plugins/force_push_guard/__init__.py +5 -0
  160. code_puppy_core_plugins/force_push_guard/detector.py +96 -0
  161. code_puppy_core_plugins/force_push_guard/register_callbacks.py +161 -0
  162. code_puppy_core_plugins/fork/__init__.py +7 -0
  163. code_puppy_core_plugins/fork/register_callbacks.py +445 -0
  164. code_puppy_core_plugins/frontend_emitter/__init__.py +25 -0
  165. code_puppy_core_plugins/frontend_emitter/emitter.py +249 -0
  166. code_puppy_core_plugins/frontend_emitter/register_callbacks.py +412 -0
  167. code_puppy_core_plugins/frontend_emitter/session_context.py +50 -0
  168. code_puppy_core_plugins/grok_oauth/__init__.py +6 -0
  169. code_puppy_core_plugins/grok_oauth/config.py +49 -0
  170. code_puppy_core_plugins/grok_oauth/oauth_flow.py +213 -0
  171. code_puppy_core_plugins/grok_oauth/register_callbacks.py +132 -0
  172. code_puppy_core_plugins/grok_oauth/utils.py +195 -0
  173. code_puppy_core_plugins/herdr/README.md +168 -0
  174. code_puppy_core_plugins/herdr/__init__.py +9 -0
  175. code_puppy_core_plugins/herdr/client.py +339 -0
  176. code_puppy_core_plugins/herdr/register_callbacks.py +140 -0
  177. code_puppy_core_plugins/herdr/reporter.py +212 -0
  178. code_puppy_core_plugins/herdr/smoke.py +143 -0
  179. code_puppy_core_plugins/herdr/sources.py +133 -0
  180. code_puppy_core_plugins/hook_creator/__init__.py +1 -0
  181. code_puppy_core_plugins/hook_creator/register_callbacks.py +33 -0
  182. code_puppy_core_plugins/hook_manager/__init__.py +1 -0
  183. code_puppy_core_plugins/hook_manager/config.py +290 -0
  184. code_puppy_core_plugins/hook_manager/hooks_menu.py +571 -0
  185. code_puppy_core_plugins/hook_manager/register_callbacks.py +227 -0
  186. code_puppy_core_plugins/meta_oauth/__init__.py +1 -0
  187. code_puppy_core_plugins/meta_oauth/config.py +55 -0
  188. code_puppy_core_plugins/meta_oauth/oauth_flow.py +109 -0
  189. code_puppy_core_plugins/meta_oauth/register_callbacks.py +154 -0
  190. code_puppy_core_plugins/meta_oauth/utils.py +252 -0
  191. code_puppy_core_plugins/namespace_skill_search/README.md +118 -0
  192. code_puppy_core_plugins/namespace_skill_search/__init__.py +15 -0
  193. code_puppy_core_plugins/namespace_skill_search/namespaces.py +125 -0
  194. code_puppy_core_plugins/namespace_skill_search/register_callbacks.py +99 -0
  195. code_puppy_core_plugins/namespace_skill_search/search_tool.py +158 -0
  196. code_puppy_core_plugins/no_tools/__init__.py +0 -0
  197. code_puppy_core_plugins/no_tools/register_callbacks.py +42 -0
  198. code_puppy_core_plugins/oauth_pasteback.py +110 -0
  199. code_puppy_core_plugins/oauth_puppy_html.py +194 -0
  200. code_puppy_core_plugins/obsidian_agent/README.md +52 -0
  201. code_puppy_core_plugins/obsidian_agent/__init__.py +8 -0
  202. code_puppy_core_plugins/obsidian_agent/agent_obsidian.py +147 -0
  203. code_puppy_core_plugins/obsidian_agent/register_callbacks.py +13 -0
  204. code_puppy_core_plugins/ollama/__init__.py +1 -0
  205. code_puppy_core_plugins/ollama/register_callbacks.py +127 -0
  206. code_puppy_core_plugins/ollama_setup/__init__.py +5 -0
  207. code_puppy_core_plugins/ollama_setup/completer.py +38 -0
  208. code_puppy_core_plugins/ollama_setup/register_callbacks.py +419 -0
  209. code_puppy_core_plugins/plugin_list/__init__.py +0 -0
  210. code_puppy_core_plugins/plugin_list/plugin_contributions.py +348 -0
  211. code_puppy_core_plugins/plugin_list/plugin_meta.py +67 -0
  212. code_puppy_core_plugins/plugin_list/plugin_text_utils.py +173 -0
  213. code_puppy_core_plugins/plugin_list/plugins_menu.py +455 -0
  214. code_puppy_core_plugins/plugin_list/plugins_menu_layout.py +194 -0
  215. code_puppy_core_plugins/plugin_list/plugins_menu_render.py +431 -0
  216. code_puppy_core_plugins/plugin_list/project_trust_flow.py +162 -0
  217. code_puppy_core_plugins/plugin_list/register_callbacks.py +281 -0
  218. code_puppy_core_plugins/pop_command/__init__.py +1 -0
  219. code_puppy_core_plugins/pop_command/register_callbacks.py +191 -0
  220. code_puppy_core_plugins/prompt_newline/__init__.py +13 -0
  221. code_puppy_core_plugins/prompt_newline/config.py +21 -0
  222. code_puppy_core_plugins/prompt_newline/register_callbacks.py +163 -0
  223. code_puppy_core_plugins/prune/__init__.py +1 -0
  224. code_puppy_core_plugins/prune/prune_menu.py +308 -0
  225. code_puppy_core_plugins/prune/prune_model.py +517 -0
  226. code_puppy_core_plugins/prune/prune_render.py +354 -0
  227. code_puppy_core_plugins/prune/register_callbacks.py +388 -0
  228. code_puppy_core_plugins/puppy_kennel/README.md +203 -0
  229. code_puppy_core_plugins/puppy_kennel/__init__.py +6 -0
  230. code_puppy_core_plugins/puppy_kennel/commands.py +206 -0
  231. code_puppy_core_plugins/puppy_kennel/config.py +36 -0
  232. code_puppy_core_plugins/puppy_kennel/kennel.py +368 -0
  233. code_puppy_core_plugins/puppy_kennel/packer.py +152 -0
  234. code_puppy_core_plugins/puppy_kennel/recorder.py +83 -0
  235. code_puppy_core_plugins/puppy_kennel/register_callbacks.py +109 -0
  236. code_puppy_core_plugins/puppy_kennel/retriever.py +28 -0
  237. code_puppy_core_plugins/puppy_kennel/schema.py +78 -0
  238. code_puppy_core_plugins/puppy_kennel/state.py +68 -0
  239. code_puppy_core_plugins/puppy_kennel/tools.py +449 -0
  240. code_puppy_core_plugins/puppy_kennel/wings.py +110 -0
  241. code_puppy_core_plugins/puppy_spinner/README.md +93 -0
  242. code_puppy_core_plugins/puppy_spinner/__init__.py +11 -0
  243. code_puppy_core_plugins/puppy_spinner/builtin_frames.py +172 -0
  244. code_puppy_core_plugins/puppy_spinner/commands.py +116 -0
  245. code_puppy_core_plugins/puppy_spinner/picker.py +379 -0
  246. code_puppy_core_plugins/puppy_spinner/register_callbacks.py +193 -0
  247. code_puppy_core_plugins/puppy_spinner/spinners.py +444 -0
  248. code_puppy_core_plugins/quick_resume/__init__.py +0 -0
  249. code_puppy_core_plugins/quick_resume/register_callbacks.py +77 -0
  250. code_puppy_core_plugins/review_pr/__init__.py +1 -0
  251. code_puppy_core_plugins/review_pr/register_callbacks.py +162 -0
  252. code_puppy_core_plugins/shell_safety/__init__.py +6 -0
  253. code_puppy_core_plugins/shell_safety/agent_shell_safety.py +69 -0
  254. code_puppy_core_plugins/shell_safety/command_cache.py +156 -0
  255. code_puppy_core_plugins/shell_safety/register_callbacks.py +203 -0
  256. code_puppy_core_plugins/stack_dump/__init__.py +1 -0
  257. code_puppy_core_plugins/stack_dump/register_callbacks.py +79 -0
  258. code_puppy_core_plugins/statusline/__init__.py +14 -0
  259. code_puppy_core_plugins/statusline/config.py +68 -0
  260. code_puppy_core_plugins/statusline/payload.py +138 -0
  261. code_puppy_core_plugins/statusline/prompt_patch.py +76 -0
  262. code_puppy_core_plugins/statusline/register_callbacks.py +45 -0
  263. code_puppy_core_plugins/statusline/runner.py +122 -0
  264. code_puppy_core_plugins/statusline/statusline_command.py +197 -0
  265. code_puppy_core_plugins/steer_queue/__init__.py +10 -0
  266. code_puppy_core_plugins/steer_queue/queue_menu.py +444 -0
  267. code_puppy_core_plugins/steer_queue/register_callbacks.py +138 -0
  268. code_puppy_core_plugins/subagent_panel/README.md +102 -0
  269. code_puppy_core_plugins/subagent_panel/__init__.py +24 -0
  270. code_puppy_core_plugins/subagent_panel/coalesce_patch.py +242 -0
  271. code_puppy_core_plugins/subagent_panel/panel_render.py +145 -0
  272. code_puppy_core_plugins/subagent_panel/register_callbacks.py +535 -0
  273. code_puppy_core_plugins/subagent_panel/resume_repaint.py +112 -0
  274. code_puppy_core_plugins/subagent_panel/state.py +231 -0
  275. code_puppy_core_plugins/switch_agent_resume/__init__.py +5 -0
  276. code_puppy_core_plugins/switch_agent_resume/register_callbacks.py +314 -0
  277. code_puppy_core_plugins/theme/README.md +86 -0
  278. code_puppy_core_plugins/theme/__init__.py +14 -0
  279. code_puppy_core_plugins/theme/bundled_palettes.py +346 -0
  280. code_puppy_core_plugins/theme/content_styles.py +146 -0
  281. code_puppy_core_plugins/theme/osc_palette.py +178 -0
  282. code_puppy_core_plugins/theme/picker.py +358 -0
  283. code_puppy_core_plugins/theme/prompt_toolkit_theme.py +113 -0
  284. code_puppy_core_plugins/theme/register_callbacks.py +348 -0
  285. code_puppy_core_plugins/theme/rich_themes.py +202 -0
  286. code_puppy_core_plugins/theme/themes.py +720 -0
  287. code_puppy_core_plugins/timestamp_heartbeat/__init__.py +1 -0
  288. code_puppy_core_plugins/timestamp_heartbeat/register_callbacks.py +114 -0
  289. code_puppy_core_plugins/token_ratio_learner/__init__.py +5 -0
  290. code_puppy_core_plugins/token_ratio_learner/ratios.py +208 -0
  291. code_puppy_core_plugins/token_ratio_learner/register_callbacks.py +213 -0
  292. code_puppy_core_plugins/universal_constructor/__init__.py +13 -0
  293. code_puppy_core_plugins/universal_constructor/models.py +138 -0
  294. code_puppy_core_plugins/universal_constructor/provider.py +62 -0
  295. code_puppy_core_plugins/universal_constructor/register_callbacks.py +75 -0
  296. code_puppy_core_plugins/universal_constructor/registry.py +302 -0
  297. code_puppy_core_plugins/universal_constructor/sandbox.py +584 -0
  298. code_puppy_core_plugins/wide_completion_menu/__init__.py +6 -0
  299. code_puppy_core_plugins/wide_completion_menu/register_callbacks.py +165 -0
  300. code_puppy_core_plugins/wiggum/__init__.py +1 -0
  301. code_puppy_core_plugins/wiggum/goal_runs.py +91 -0
  302. code_puppy_core_plugins/wiggum/judge.py +299 -0
  303. code_puppy_core_plugins/wiggum/judge_config.py +249 -0
  304. code_puppy_core_plugins/wiggum/judges_menu.py +814 -0
  305. code_puppy_core_plugins/wiggum/register_callbacks.py +569 -0
  306. code_puppy_core_plugins/wiggum/state.py +89 -0
  307. code_puppy_core_plugins/yolo_cli/__init__.py +1 -0
  308. code_puppy_core_plugins/yolo_cli/register_callbacks.py +41 -0
  309. code_puppy_core_plugins-0.0.2.dist-info/METADATA +64 -0
  310. code_puppy_core_plugins-0.0.2.dist-info/RECORD +313 -0
  311. code_puppy_core_plugins-0.0.2.dist-info/WHEEL +4 -0
  312. code_puppy_core_plugins-0.0.2.dist-info/entry_points.txt +55 -0
  313. code_puppy_core_plugins-0.0.2.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,392 @@
1
+ # `//flux` Command Synopsis
2
+
3
+ Quick reference for arguments, options, and usage examples for every command in the `//flux` suite.
4
+
5
+ ---
6
+
7
+ ## `/flux/config` ⚙️ First-time setup
8
+
9
+ > **Run this once before using the `//flux` suite on a new project.** It creates the flux `config.env` file (`~/.flux/<flattened-dir>/config.env`) with your project-specific settings. All other `//flux` commands read from this file automatically.
10
+
11
+ ```
12
+ /flux/config
13
+ ```
14
+
15
+ | Argument | Required | Description |
16
+ | --------- | -------- | ------------------- |
17
+ | _(empty)_ | — | No arguments needed |
18
+
19
+ **What it configures:**
20
+
21
+ | Key | Required | Description |
22
+ | ---------------------- | --------- | -------------------------------------------------------------------- |
23
+ | `TEST_CMD` | mandatory | Command to run your test suite (e.g. `bun run test:quiet`) |
24
+
25
+ **Example:**
26
+
27
+ ```
28
+ /flux/config
29
+ ```
30
+
31
+ ---
32
+
33
+ ## `/flux/new`
34
+
35
+ Create a new task file from a description or Jira ticket.
36
+
37
+ ```
38
+ /flux/new <description | TICKET-ID>
39
+ ```
40
+
41
+ | Argument | Required | Description |
42
+ | ------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------- |
43
+ | `description` | mandatory | Natural language description of the task |
44
+ | `TICKET-ID` | mandatory (alt) | Jira ticket key (e.g. `MYPROJ-123`, `CLIAPP-456`) — fetches summary, description, and acceptance criteria automatically |
45
+
46
+ **Examples:**
47
+
48
+ ```
49
+ /flux/new "Add real-time notifications to the sidebar"
50
+ /flux/new MYPROJ-123
51
+ /flux/new CLIAPP-456
52
+ ```
53
+
54
+ ---
55
+
56
+ ## `/flux/ask`
57
+
58
+ Clarify requirements via structured questions, then augment the task file with research and an implementation plan.
59
+
60
+ ```
61
+ /flux/ask [todo-file | all]
62
+ ```
63
+
64
+ | Argument | Required | Description |
65
+ | ----------- | -------------- | ----------------------------------------------------------------------------------------------------------- |
66
+ | `todo_file` | optional | Task file name (path and `.md` extension inferred). If omitted, prompts you to select from available tasks. |
67
+ | `all` | optional (alt) | Iterates through every file in the flux todo directory and asks clarifying questions |
68
+
69
+ **Examples:**
70
+
71
+ ```
72
+ /flux/ask NOTIFS
73
+ /flux/ask MYPROJ-123
74
+ /flux/ask all
75
+ /flux/ask # interactive selection
76
+ ```
77
+
78
+ ---
79
+
80
+ ## `/flux/split`
81
+
82
+ Decompose a large task file into multiple focused, single-session subtask files. Deletes the original.
83
+
84
+ ```
85
+ /flux/split <todo-file>
86
+ ```
87
+
88
+ | Argument | Required | Description |
89
+ | ----------- | --------- | ------------------------------------------------------ |
90
+ | `todo-file` | mandatory | Task file to split (path and `.md` extension inferred) |
91
+
92
+ **Examples:**
93
+
94
+ ```
95
+ /flux/split NOTIFS
96
+ /flux/split MYPROJ-123
97
+ ```
98
+
99
+ ---
100
+
101
+ ## `/flux/aug`
102
+
103
+ Research the codebase and enrich task file(s) with implementation detail and citations.
104
+
105
+ ```
106
+ /flux/aug [todo-file | N]
107
+ ```
108
+
109
+ | Argument | Required | Description |
110
+ | ----------- | -------------- | -------------------------------------------------------------- |
111
+ | `todo-file` | optional | Augment a single task file (path and `.md` extension inferred) |
112
+ | `N` | optional (alt) | Augment all tasks using N parallel sub-agents |
113
+ | _(empty)_ | — | Interactive selection prompt |
114
+
115
+ **Examples:**
116
+
117
+ ```
118
+ /flux/aug NOTIFS # single task
119
+ /flux/aug 2 # all tasks, 2 agents in parallel
120
+ /flux/aug 3 # all tasks, 3 agents in parallel
121
+ /flux/aug # interactive selection
122
+ ```
123
+
124
+ ---
125
+
126
+ ## `/flux/exec`
127
+
128
+ Execute task(s) exactly as written — no scope creep.
129
+
130
+ ```
131
+ /flux/exec [todo_file | N]
132
+ ```
133
+
134
+ | Argument | Required | Description |
135
+ | ----------- | -------------- | -------------------------------------------------------------- |
136
+ | `todo_file` | optional | Execute a single task file (path and `.md` extension inferred) |
137
+ | `N` | optional (alt) | Execute all tasks using N parallel sub-agents |
138
+ | _(empty)_ | — | Interactive selection prompt |
139
+
140
+ **Examples:**
141
+
142
+ ```
143
+ /flux/exec NOTIFS_1 # single task
144
+ /flux/exec 2 # all tasks, 2 agents in parallel
145
+ ```
146
+
147
+ ---
148
+
149
+ ## `/flux/qa`
150
+
151
+ Code-review the implementation for a task. Rates 1–10. Moves to `done/` if perfect; refines the task file if not.
152
+
153
+ ```
154
+ /flux/qa [todo_file | N]
155
+ ```
156
+
157
+ | Argument | Required | Description |
158
+ | ----------- | -------------- | --------------------------------------------------------- |
159
+ | `todo_file` | optional | QA a single task file (path and `.md` extension inferred) |
160
+ | `N` | optional (alt) | QA all tasks using N parallel sub-agents |
161
+ | _(empty)_ | — | Interactive selection prompt |
162
+
163
+ **Examples:**
164
+
165
+ ```
166
+ /flux/qa NOTIFS_1 # single task
167
+ /flux/qa 2 # all tasks, 2 agents in parallel
168
+ /flux/qa # interactive selection
169
+ ```
170
+
171
+ > **QA loop:** If score < 10/10, re-run `/flux/exec` then `/flux/qa` until the task file is deleted.
172
+
173
+ ---
174
+
175
+ ## `/flux/tests`
176
+
177
+ Run the project's test suite, fix regressions introduced by this branch, and leave pre-existing failures untouched.
178
+
179
+ ```
180
+ /flux/tests [additional_instructions]
181
+ ```
182
+
183
+ | Argument | Required | Description |
184
+ | ------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------- |
185
+ | `additional_instructions` | optional | Override default behavior (e.g. "address all failing tests including pre-existing", "focus on auth/ tests only") |
186
+ | _(empty)_ | — | Runs with default behavior: fix regressions only, skip pre-existing |
187
+
188
+ **How it works:**
189
+
190
+ 1. Reads `TEST_CMD` from the flux `config.env`
191
+ 2. Establishes a baseline of pre-existing failures by running the test suite against the merge base
192
+ 3. Runs tests on the current branch, classifies failures as regressions vs. pre-existing
193
+ 4. Fixes regressions (up to 3 fix cycles), leaves pre-existing failures untouched
194
+ 5. Prints a summary: regressions fixed, pre-existing skipped, unresolved
195
+
196
+ **Examples:**
197
+
198
+ ```
199
+ /flux/tests
200
+ /flux/tests address all failing tests including pre-existing
201
+ /flux/tests focus only on src/auth/ test failures
202
+ ```
203
+
204
+ > **Note:** Requires `TEST_CMD` to be configured via `/flux/config` first.
205
+
206
+ ---
207
+
208
+ ## `/flux/commit`
209
+
210
+ Stage all changes and create a detailed commit message derived from the diff vs. main. Asks for confirmation before committing.
211
+
212
+ ```
213
+ /flux/commit
214
+ ```
215
+
216
+ | Argument | Required | Description |
217
+ | --------- | -------- | ------------------- |
218
+ | _(empty)_ | — | No arguments needed |
219
+
220
+ **Example:**
221
+
222
+ ```
223
+ /flux/commit
224
+ ```
225
+
226
+ ---
227
+
228
+ ## `/flux/create-pr`
229
+
230
+ Create a GitHub PR for the current branch, or display the existing PR URL and status if one already exists. Idempotent.
231
+
232
+ ```
233
+ /flux/create-pr
234
+ ```
235
+
236
+ | Argument | Required | Description |
237
+ | --------- | -------- | ------------------- |
238
+ | _(empty)_ | — | No arguments needed |
239
+
240
+ **Example:**
241
+
242
+ ```
243
+ /flux/create-pr
244
+ ```
245
+
246
+ ---
247
+
248
+ ## `/flux/review`
249
+
250
+ Full code review of changed files with severity ratings. Optionally targets a specific PR by number.
251
+
252
+ ```
253
+ /flux/review [PR#]
254
+ ```
255
+
256
+ | Argument | Required | Description |
257
+ | -------- | -------- | ----------------------------------------------------------------------------------------------------- |
258
+ | `PR#` | optional | PR number to review (e.g. `123`). If omitted, reviews the current branch against its detected parent. |
259
+
260
+ **Examples:**
261
+
262
+ ```
263
+ /flux/review # review current branch
264
+ /flux/review 123 # review PR #123
265
+ ```
266
+
267
+ Output: review files are written to the flux review directory (`~/.flux/<flattened-dir>/review/`), and then zipped as `review.zip` in the same parent directory.
268
+
269
+ ---
270
+
271
+ ## `/flux/address-feedback`
272
+
273
+ Convert review files into actionable todo tasks in the flux todo directory.
274
+
275
+ ```
276
+ /flux/address-feedback [/path/to/review.zip]
277
+ ```
278
+
279
+ | Argument | Required | Description |
280
+ | --------------------- | -------- | ---------------------------------------------- |
281
+ | `/path/to/review.zip` | optional | Path to a zip file received from a reviewer |
282
+ | _(empty)_ | - | If omitted, uses the local flux review folder. |
283
+
284
+ **Examples:**
285
+
286
+ ```
287
+ /flux/address-feedback ~/Desktop/review.zip # processed received zip file
288
+ /flux/address-feedback # uses local review folder
289
+ ```
290
+
291
+ ---
292
+
293
+ ## `/flux/rebase`
294
+
295
+ Rebase the current branch onto the latest `main`, preserving each commit individually. Handles clean-tree check (with stash option), conflict resolution per commit, and force-with-lease push.
296
+
297
+ ```
298
+ /flux/rebase
299
+ ```
300
+
301
+ | Argument | Required | Description |
302
+ | --------- | -------- | ------------------- |
303
+ | _(empty)_ | — | No arguments needed |
304
+
305
+ **What it does:**
306
+
307
+ 1. Captures current branch state (commits, changed files)
308
+ 2. Checks working tree is clean — offers to stash if not
309
+ 3. Fetches and syncs local `main` with `origin/main`
310
+ 4. Identifies potential conflict hotspots
311
+ 5. Runs `git rebase main` — replays your commits on top of latest main
312
+ 6. Guides through conflict resolution per commit (text, modify/delete, binary, rename, submodule)
313
+ 7. Verifies history and changed files after rebase
314
+ 8. Asks whether to push (`git push -u` for new branches, `--force-with-lease` for existing)
315
+ 9. Offers to pop the stash if one was created in step 2
316
+
317
+ **Example:**
318
+
319
+ ```
320
+ /flux/rebase
321
+ ```
322
+
323
+ ---
324
+
325
+ ## `/flux/squash-commits`
326
+
327
+ Squash all unmerged commits (commits on your branch not yet on the default branch) into a single commit. Handles clean-tree check (with stash option), detects out-of-sync remote branches, and offers force-with-lease push.
328
+
329
+ ```
330
+ /flux/squash-commits
331
+ ```
332
+
333
+ | Argument | Required | Description |
334
+ | --------- | -------- | ------------------- |
335
+ | _(empty)_ | — | No arguments needed |
336
+
337
+ **What it does:**
338
+
339
+ 1. Captures current branch state (commits, changed files)
340
+ 2. Checks working tree is clean — offers to stash if not
341
+ 3. Checks the branch is not behind its remote counterpart — aborts with instructions if so
342
+ 4. Shows commits to squash and asks for confirmation
343
+ 5. Builds a combined commit message from all individual messages (bulleted list, oldest first) — user can override
344
+ 6. Squashes via `git reset --soft` + `git commit`
345
+ 7. Verifies result — confirms exactly 1 commit and correct diff
346
+ 8. Asks whether to push (`git push -u` for new branches, `--force-with-lease` for existing)
347
+ 9. Offers to pop the stash if one was created in step 2
348
+
349
+ **Example:**
350
+
351
+ ```
352
+ /flux/squash-commits
353
+ ```
354
+
355
+ ---
356
+
357
+ ## `/flux/auto-pilot`
358
+
359
+ Orchestrate the complete **PIPELINE A** sequence end-to-end from a single prompt. Pauses only during `/flux/ask` for clarifying questions.
360
+
361
+ ```
362
+ /flux/auto-pilot <prompt | spec.md | spec.txt | TICKET-ID>
363
+ ```
364
+
365
+ | Argument | Required | Description |
366
+ | ---------------------- | ------------------ | ----------------------------------------------------------------------- |
367
+ | `prompt` | mandatory (one of) | Natural language description of the task |
368
+ | `spec.md` / `spec.txt` | mandatory (alt) | Path to a spec file — contents used as the task description |
369
+ | `TICKET-ID` | mandatory (alt) | Jira ticket key — fetches summary, description, and acceptance criteria |
370
+
371
+ **Examples:**
372
+
373
+ ```
374
+ /flux/auto-pilot "Add real-time notifications"
375
+ /flux/auto-pilot ./specs/notifications.md
376
+ /flux/auto-pilot MYPROJ-123
377
+ /flux/auto-pilot CLIAPP-456
378
+ ```
379
+
380
+ **Stages executed automatically:**
381
+
382
+ 1. `/flux/new` → create task file
383
+ 2. `/flux/ask` → clarify requirements _(only user pause)_
384
+ 3. `/clear`
385
+ 4. `/flux/split` → decompose into subtasks
386
+ 5. `/flux/aug 2` → augment with 2 agents
387
+ 6. `/clear`
388
+ 7. `/flux/exec 2` → execute with 2 agents
389
+ 8. `/clear`
390
+ 9. `/flux/qa 2` → QA with 2 agents (up to 3 cycles)
391
+ 10. `/flux/tests` → fix test regressions
392
+ 11. `/flux/commit` → commit _(asks for confirmation)_
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: about
3
+ description: Display a brief overview of Flux — structured AI dev pipeline
4
+ exec: {python} {script:flux_about.py} --source {command:flux/about.md}
5
+ ---
6
+
7
+ # /flux/about
8
+
9
+ Output the following overview exactly as written. Do not add commentary, do not fetch anything, do not modify the content.
10
+
11
+ ---
12
+
13
+ 🌀 **Flux** — Structured AI Dev Pipeline
14
+
15
+ Flux turns chaotic AI coding sessions into a smooth, repeatable workflow. Instead of one giant "do everything" prompt, Flux breaks work into focused, per-file pipeline steps — keeping the AI sharp and your context clean.
16
+
17
+ **The 9-Step Pipeline:**
18
+
19
+ ```
20
+ new → ask → split → aug → exec → qa → tests → commit → create-pr
21
+ ```
22
+
23
+ | Command | What it does |
24
+ | ------------------ | ------------------------------------------------------ |
25
+ | `/flux/new` | Create a task file from a description or Jira ticket |
26
+ | `/flux/ask` | Clarify requirements & research the codebase |
27
+ | `/flux/split` | Break large tasks into focused subtasks |
28
+ | `/flux/aug` | Deep research: annotate tasks with exact file paths |
29
+ | `/flux/exec` | Implement — precisely what the spec says, no more |
30
+ | `/flux/qa` | Score vs acceptance criteria; loop until 10/10 |
31
+ | `/flux/tests` | Fix regressions without touching pre-existing failures |
32
+ | `/flux/commit` | Craft a meaningful commit message, ask confirmation |
33
+ | `/flux/create-pr` | Open a GitHub PR with full task-derived description |
34
+
35
+ **Utility Commands:**
36
+
37
+ | Command | What it does |
38
+ | ------------------------- | -------------------------------------------------------------------- |
39
+ | `/flux/config` | One-time setup: configure the test command used by /flux/tests |
40
+ | `/flux/review` | Full code review vs parent branch; optionally targets a PR number |
41
+ | `/flux/address-feedback` | Convert review files into executable todo tasks |
42
+ | `/flux/auto-pilot` | Run the full pipeline end-to-end from a single prompt or Jira ticket |
43
+ | `/flux/status` | Show the status panel that displays task files and their status live |
44
+ | `/flux/cheatsheet` | Show the //flux pipeline cheatsheet (all stages, colorized) |
45
+
46
+ **Key Benefits:**
47
+
48
+ - **Crash-proof** — all state lives in `~/.flux/`; resume anytime after a crash or restart
49
+ - **Context-safe** — `/clear` between steps is encouraged; `aug` output persists to disk
50
+ - **Parallel agents** — `aug`, `exec`, and `qa` all support concurrent multi-agent runs
51
+ - **QA gate** — nothing ships until it scores 10/10 against acceptance criteria
@@ -0,0 +1,129 @@
1
+ ---
2
+ name: address-feedback
3
+ argument-hint: /path/to/review.zip(optional) | additional_instructions
4
+ description: Convert review files into todo tasks.
5
+ ---
6
+
7
+ # ADDRESS FEEDBACK
8
+
9
+ Convert review files into individual todo task files.
10
+
11
+ ## STEP 1: Resolve input
12
+
13
+ ```bash
14
+ FLUX_ROOT="${FLUX_ROOT:-$HOME/.flux}"
15
+ FLUX_DIR=$(printf '%s' "$(pwd -P)" | tr -cs 'a-zA-Z0-9' '-')
16
+ FLUX_BASE="$FLUX_ROOT/$FLUX_DIR"
17
+ mkdir -p "$FLUX_BASE/todo" "$FLUX_BASE/done" "$FLUX_BASE/review"
18
+ echo "FLUX_BASE=$FLUX_BASE"
19
+ ```
20
+
21
+ **Routing:**
22
+
23
+ ```
24
+ IF $ARGUMENTS is non-empty:
25
+ -> test -f "$ARGUMENTS" — if not found: print "Error: Zip file not found: $ARGUMENTS" and stop
26
+ -> proceed to STEP 2 unzip using $ARGUMENTS as zip path
27
+
28
+ IF $ARGUMENTS is empty:
29
+ -> ask_user_question with options:
30
+ 1. "Address review already present in the flux review folder ($FLUX_BASE/review)"
31
+ 2. "I want to provide the path to a review zip file I received."
32
+ 3. "Something else"
33
+ ```
34
+
35
+ ## STEP 2: Populate review
36
+
37
+ - Option 1 (review already present): no action needed, proceed to STEP 3.
38
+ - Option 2 (zip provided): unzip into `$FLUX_BASE/review/`:
39
+
40
+ ```bash
41
+ unzip -o "$ARGUMENTS" -d "$FLUX_BASE/review/"
42
+ ```
43
+
44
+ ## STEP 3: Flatten by priority (in-place inside review/)
45
+
46
+ Flatten priority subdirectories into prefixed flat files, all within `$FLUX_BASE/review/`:
47
+
48
+ ```bash
49
+ for priority in low medium high critical; do
50
+ dir="$FLUX_BASE/review/${priority}"
51
+ if [ -d "$dir" ]; then
52
+ prefix=$(echo "$priority" | tr '[:lower:]' '[:upper:]')
53
+ for file in "$dir"/*; do
54
+ [ -f "$file" ] || continue
55
+ filename=$(basename "$file")
56
+ mv "$file" "$FLUX_BASE/review/${prefix}-${filename}"
57
+ done
58
+ rmdir "$dir"
59
+ fi
60
+ done
61
+ ```
62
+
63
+ ```bash
64
+ prefixed_count=$(ls "$FLUX_BASE/review/"{LOW,MEDIUM,HIGH,CRITICAL}-*.md 2>/dev/null | wc -l | tr -d ' ') || true
65
+ if [ "$prefixed_count" -eq 0 ]; then
66
+ unprefixed=$(ls "$FLUX_BASE/review/"*.md 2>/dev/null | grep -v -E '/(LOW|MEDIUM|HIGH|CRITICAL)-' | wc -l | tr -d ' ')
67
+ if [ "$unprefixed" -gt 0 ]; then
68
+ echo "⚠️ WARNING: No priority-prefixed files found after flattening."
69
+ echo "The review appears to have a flat structure (no low/medium/high/critical subdirectories)."
70
+ echo "Found $unprefixed unprefixed .md files. These will NOT be processed by STEP 4."
71
+ echo "Files found without priority prefix:"
72
+ ls "$FLUX_BASE/review/"*.md 2>/dev/null | grep -v -E '/(LOW|MEDIUM|HIGH|CRITICAL)-' | sed 's|.*/||' || echo "(none)"
73
+ echo "Ensure the review was generated by /flux/review which creates the priority subdirectory structure."
74
+ fi
75
+ fi
76
+ ```
77
+
78
+ List all `LOW-*`, `MEDIUM-*`, `HIGH-*`, `CRITICAL-*` files in `$FLUX_BASE/review/` to confirm.
79
+
80
+ ## STEP 4: Move to todo
81
+
82
+ Move all flattened files from `review/` to `todo/`, leaving `review/` empty:
83
+
84
+ ```bash
85
+ for file in "$FLUX_BASE/review/"{LOW,MEDIUM,HIGH,CRITICAL}-*.md; do
86
+ [ -f "$file" ] || continue
87
+ mv "$file" "$FLUX_BASE/todo/"
88
+ done
89
+ ```
90
+
91
+ ## STEP 5: Normalize frontmatter
92
+
93
+ For each `LOW-*`, `MEDIUM-*`, `HIGH-*`, `CRITICAL-*` file in `$FLUX_BASE/todo/`:
94
+
95
+ 1. Derive: **priority** from filename prefix; **title** from filename sans prefix and `.md` extension, hyphens/underscores → spaces, title-cased (e.g. `HIGH-fix-null-pointer.md` → `Fix Null Pointer`); **status** = `todo`
96
+ 2. Replace or insert frontmatter (if file starts with `---`, replace entire existing block — do not append a second one):
97
+
98
+ ```yaml
99
+ ---
100
+ title: <derived title>
101
+ priority: <LOW|MEDIUM|HIGH|CRITICAL>
102
+ status: todo
103
+ ---
104
+ ```
105
+
106
+ 3. Preserve all content below frontmatter exactly.
107
+ 4. Write file back.
108
+
109
+ ## STEP 6: Summary
110
+
111
+ Print a summary table and per-priority counts:
112
+
113
+ | File | Priority |
114
+ | -------------- | -------- |
115
+ | LOW-example.md | LOW |
116
+
117
+ ## HARD CONSTRAINTS
118
+
119
+ - **Path**: All file operations MUST use the exact `FLUX_BASE` value printed by the STEP 1 bash output (e.g. `FLUX_BASE=/Users/...`). Copy it character-for-character — never reconstruct it from `cwd` or memory.
120
+ - `/flux/address-feedback` MUST NOT modify any source files. The only permitted file operations are: unzipping the review archive, moving files between `$FLUX_BASE/review/` and `$FLUX_BASE/todo/`, and updating frontmatter in todo task files. No git commands. No changes to `./src/` or other directories containing source files.
121
+
122
+ ## Propose next step
123
+
124
+ Then propose the next step: `/flux/exec all` (include arguments if needed).
125
+
126
+ Valid `//flux` commands: `/flux/config`, `/flux/new`, `/flux/ask`, `/flux/split`, `/flux/aug`, `/flux/exec`, `/flux/qa`, `/flux/tests`, `/flux/commit`, `/flux/create-pr`, `/flux/review`, `/flux/address-feedback`, `/flux/status`, `/flux/auto-pilot`, `/flux/rebase`. Do NOT suggest any command not on this list.
127
+
128
+ =================
129
+ $ARGUMENTS