gflow-cli 0.69.0__tar.gz → 0.71.0__tar.gz

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 (1053) hide show
  1. gflow_cli-0.71.0/.claude/commands/gflow/spike.md +10 -0
  2. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.codex-plugin/plugin.json +1 -1
  3. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/dependabot.yml +0 -26
  4. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/workflows/pages.yml +1 -1
  5. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/workflows/release.yml +1 -1
  6. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.gitignore +18 -0
  7. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/AGENTS.md +119 -8
  8. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/CHANGELOG.md +420 -1
  9. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/CONTRIBUTING.md +38 -0
  10. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/KNOWN_ISSUES.md +19 -4
  11. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/PKG-INFO +2 -2
  12. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/AGENT_GUIDE.md +1 -1
  13. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/CHARACTER.md +41 -15
  14. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/CHARACTER_RECON.md +7 -2
  15. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/CONFIGURATION.md +2 -2
  16. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/GITHUB.md +4 -2
  17. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/INDEX.md +2 -2
  18. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.69.0.md +61 -26
  19. gflow_cli-0.71.0/docs/LIVE_VERIFICATION_v0.70.0.md +143 -0
  20. gflow_cli-0.71.0/docs/LIVE_VERIFICATION_v0.71.0.md +120 -0
  21. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/MCP.md +14 -2
  22. {gflow_cli-0.69.0/website → gflow_cli-0.71.0}/docs/MOVIE.md +60 -0
  23. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/PROJECT_STATUS.md +80 -0
  24. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/USAGE.md +32 -5
  25. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/flow-locale-leak-icon-ligatures.md +8 -1
  26. gflow_cli-0.71.0/docs/superpowers/memory/ligature-carrier-differs-by-host.md +45 -0
  27. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/migrated-host-driver-wire-lessons.md +42 -1
  28. gflow_cli-0.71.0/docs/superpowers/plans/2026-09-06-spike-tooling-reorg/PLAN.md +246 -0
  29. gflow_cli-0.71.0/docs/superpowers/spikes/2026-09-05-migrated-r2v-attach-surface.md +464 -0
  30. gflow_cli-0.71.0/docs/superpowers/spikes/2026-09-06-labs-vs-migrated-session-credential.md +305 -0
  31. gflow_cli-0.71.0/docs/superpowers/spikes/2026-09-06-migrated-character-surface-and-recaptcha.md +98 -0
  32. gflow_cli-0.71.0/docs/superpowers/spikes/2026-09-07-character-format-button-anchor.md +145 -0
  33. gflow_cli-0.71.0/docs/superpowers/spikes/2026-09-07-credit-shortfall-looks-like-selector-drift.md +102 -0
  34. gflow_cli-0.71.0/docs/superpowers/spikes/2026-09-07-format-click-is-not-a-format.md +120 -0
  35. gflow_cli-0.71.0/docs/superpowers/spikes/2026-09-07-ligature-carrier-and-name-drift.md +113 -0
  36. gflow_cli-0.71.0/docs/superpowers/spikes/2026-09-07-migrated-composer-has-an-image-mode.md +106 -0
  37. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/pyproject.toml +3 -3
  38. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/ci/check_release_artifacts.py +64 -0
  39. gflow_cli-0.71.0/scripts/dev/acceptance/__init__.py +47 -0
  40. gflow_cli-0.71.0/scripts/dev/acceptance/bench.py +140 -0
  41. gflow_cli-0.71.0/scripts/dev/acceptance/domain.py +109 -0
  42. gflow_cli-0.71.0/scripts/dev/acceptance/judge.py +381 -0
  43. gflow_cli-0.71.0/scripts/dev/acceptance/settings.py +83 -0
  44. gflow_cli-0.71.0/scripts/dev/capture_i2v_frame_slots_dom.py +203 -0
  45. gflow_cli-0.71.0/scripts/dev/capture_i2v_intercept_submit.py +267 -0
  46. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/capture_i2v_model_select_repro.py +38 -33
  47. gflow_cli-0.71.0/scripts/dev/capture_i2v_post_bind_state.py +293 -0
  48. gflow_cli-0.71.0/scripts/dev/capture_image_add_media_dom.py +192 -0
  49. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/capture_locale_invariants.py +6 -1
  50. gflow_cli-0.71.0/scripts/dev/capture_migrated_attach_rpcs.py +235 -0
  51. gflow_cli-0.71.0/scripts/dev/capture_migrated_mention_gestures.py +168 -0
  52. gflow_cli-0.71.0/scripts/dev/capture_migrated_r2v_production_submit.py +293 -0
  53. gflow_cli-0.71.0/scripts/dev/capture_migrated_r2v_submit_payload.py +311 -0
  54. gflow_cli-0.71.0/scripts/dev/capture_migrated_r2v_surface.py +251 -0
  55. gflow_cli-0.71.0/scripts/dev/capture_migrated_upload_flow.py +293 -0
  56. gflow_cli-0.71.0/scripts/dev/har-spike/README.md +126 -0
  57. gflow_cli-0.71.0/scripts/dev/har-spike/capture-agent-ui.ps1 +165 -0
  58. gflow_cli-0.71.0/scripts/dev/har-spike/capture-media-scrape.ps1 +215 -0
  59. gflow_cli-0.71.0/scripts/dev/har-spike/extract_har_summary.py +169 -0
  60. gflow_cli-0.71.0/scripts/dev/har-spike/launch-flow-chrome.ps1 +104 -0
  61. gflow_cli-0.71.0/scripts/dev/har-spike/probe-agent-mode.ps1 +103 -0
  62. gflow_cli-0.71.0/scripts/dev/har-spike/probe_agent_mode.py +120 -0
  63. gflow_cli-0.71.0/scripts/dev/har-spike/run-cdp-smoke.ps1 +147 -0
  64. gflow_cli-0.71.0/scripts/dev/har-spike/start-background-capture.ps1 +218 -0
  65. gflow_cli-0.71.0/scripts/dev/har-spike/start-har-capture.ps1 +153 -0
  66. gflow_cli-0.71.0/scripts/dev/har-spike/stop-background-capture.ps1 +116 -0
  67. gflow_cli-0.71.0/scripts/dev/har-spike/stop-har-capture.ps1 +181 -0
  68. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/incident_bundle_quality.py +10 -1
  69. gflow_cli-0.71.0/scripts/dev/spike_cdp_har_without_node.py +235 -0
  70. gflow_cli-0.71.0/scripts/dev/spike_character_editor_ready_gate.py +204 -0
  71. gflow_cli-0.71.0/scripts/dev/spike_character_prompt_format.py +270 -0
  72. gflow_cli-0.71.0/scripts/dev/spike_entity_submit_rpcs.py +263 -0
  73. gflow_cli-0.71.0/scripts/dev/spike_format_prompt_effect.py +208 -0
  74. gflow_cli-0.71.0/scripts/dev/spike_host_lane.py +156 -0
  75. gflow_cli-0.71.0/scripts/dev/spike_ligature_carrier_sweep.py +315 -0
  76. gflow_cli-0.71.0/scripts/dev/spike_migrated_body_reference_chip.py +148 -0
  77. gflow_cli-0.71.0/scripts/dev/spike_migrated_character_body_controls.py +150 -0
  78. gflow_cli-0.71.0/scripts/dev/spike_migrated_character_editor_anchor.py +183 -0
  79. gflow_cli-0.71.0/scripts/dev/spike_migrated_character_ogiz0b_schema.py +158 -0
  80. gflow_cli-0.71.0/scripts/dev/spike_migrated_character_submit_wire.py +167 -0
  81. gflow_cli-0.71.0/scripts/dev/spike_migrated_character_surface.py +193 -0
  82. gflow_cli-0.71.0/scripts/dev/spike_migrated_composer_mode_axis.py +208 -0
  83. gflow_cli-0.71.0/scripts/dev/spike_migrated_entity_submit.py +243 -0
  84. gflow_cli-0.71.0/scripts/dev/spike_migrated_image_capability.py +246 -0
  85. gflow_cli-0.71.0/scripts/dev/spike_migrated_picker_option_kind.py +132 -0
  86. gflow_cli-0.71.0/scripts/dev/spike_migrated_recaptcha_mint.py +145 -0
  87. gflow_cli-0.71.0/scripts/dev/spike_migrated_submit_anchor.py +149 -0
  88. gflow_cli-0.71.0/scripts/dev/spike_migrated_vs_labs_provenance.py +195 -0
  89. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_omni_flash_i2v_ui_recon.py +123 -118
  90. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_patchright.py +5 -1
  91. gflow_cli-0.71.0/scripts/dev/spike_project_media_status.py +120 -0
  92. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_video_tab_dom.py +1 -1
  93. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/gflow-cli/SKILL.md +1 -1
  94. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/issue-assessment/SKILL.md +24 -0
  95. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/pr-council-review/SKILL.md +2 -2
  96. gflow_cli-0.71.0/skills/spike/SKILL.md +141 -0
  97. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/video-production/SKILL.md +171 -3
  98. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/video-production/consistency.md +13 -0
  99. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/__init__.py +1 -1
  100. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/_cli_helpers.py +11 -0
  101. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/client.py +274 -17
  102. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/migrated_composer.py +449 -19
  103. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/ui_automation.py +524 -124
  104. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/auth/real_chrome.py +17 -0
  105. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/cli_character.py +7 -3
  106. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/cli_image.py +2 -2
  107. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/cli_video.py +3 -3
  108. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/recorder.py +15 -0
  109. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/diagnostics.py +7 -2
  110. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/errors.py +44 -0
  111. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/mcp/tools.py +193 -6
  112. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/services/character_create.py +55 -0
  113. gflow_cli-0.71.0/tests/api/test_character_readback_fallback.py +254 -0
  114. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_client_image.py +40 -0
  115. gflow_cli-0.71.0/tests/api/test_client_migrated_mint.py +303 -0
  116. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/drivers/test_ui_mode.py +56 -0
  117. gflow_cli-0.71.0/tests/api/transports/test_character_model_picker.py +221 -0
  118. gflow_cli-0.71.0/tests/api/transports/test_ligature_carrier.py +202 -0
  119. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_migrated_composer.py +276 -1
  120. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_migrated_dispatch.py +34 -1
  121. gflow_cli-0.71.0/tests/api/transports/test_migrated_r2v.py +391 -0
  122. gflow_cli-0.71.0/tests/api/transports/test_new_project_cta_migrated.py +72 -0
  123. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_ui_automation.py +29 -13
  124. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_ui_character_editor.py +335 -135
  125. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/auth/strategies/test_strategies.py +73 -0
  126. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_video.py +35 -0
  127. gflow_cli-0.71.0/tests/cli/test_run_with_handlers_context_leak.py +74 -0
  128. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/data/test_find_incomplete_character.py +26 -0
  129. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/conftest.py +44 -1
  130. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_agentic_count_enforcement_e2e.py +26 -6
  131. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_character_create_e2e.py +342 -25
  132. gflow_cli-0.71.0/tests/e2e/test_character_mcp_parity_e2e.py +121 -0
  133. gflow_cli-0.71.0/tests/e2e/test_credits_mcp_e2e.py +104 -0
  134. gflow_cli-0.71.0/tests/e2e/test_e2e_env_isolation.py +44 -0
  135. gflow_cli-0.71.0/tests/e2e/test_insufficient_credits_e2e.py +90 -0
  136. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_migrated_host_e2e.py +110 -1
  137. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_sidebar_recovery_e2e.py +3 -0
  138. gflow_cli-0.71.0/tests/mcp/test_character_tools.py +158 -0
  139. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_cli_parity.py +125 -5
  140. gflow_cli-0.71.0/tests/mcp/test_reference_entity_round_trip.py +120 -0
  141. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_tools_helpers.py +16 -2
  142. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_tools_wired.py +33 -3
  143. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_check_release_artifacts.py +76 -0
  144. gflow_cli-0.71.0/tests/scripts/test_extract_har_summary.py +166 -0
  145. gflow_cli-0.71.0/tests/scripts/test_frame_acceptance.py +321 -0
  146. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_incident_bundle_quality.py +57 -1
  147. gflow_cli-0.71.0/tests/scripts/test_spike_page_pool.py +81 -0
  148. gflow_cli-0.71.0/tests/scripts/test_spike_profile_lease.py +72 -0
  149. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/services/test_character_create_saga.py +93 -0
  150. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_documentation_gate.py +17 -0
  151. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/uv.lock +31 -31
  152. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/CHARACTER.md +41 -15
  153. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/CONFIGURATION.md +2 -2
  154. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/KNOWN_ISSUES.md +19 -4
  155. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/MCP.md +14 -2
  156. {gflow_cli-0.69.0 → gflow_cli-0.71.0/website}/docs/MOVIE.md +60 -0
  157. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/USAGE.md +32 -5
  158. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/installation.md +1 -1
  159. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/requirements.txt +3 -3
  160. gflow_cli-0.69.0/deploy/PR-TRIAGE-AUTOPILOT-OPS.md +0 -163
  161. gflow_cli-0.69.0/eval/pr_triage_eval.py +0 -42
  162. gflow_cli-0.69.0/eval/pr_triage_fixtures.json +0 -194
  163. gflow_cli-0.69.0/scripts/autopilot/Dockerfile.triage +0 -54
  164. gflow_cli-0.69.0/scripts/autopilot/entrypoint.sh +0 -10
  165. gflow_cli-0.69.0/scripts/autopilot/package-lock.json +0 -152
  166. gflow_cli-0.69.0/scripts/autopilot/package.json +0 -8
  167. gflow_cli-0.69.0/scripts/autopilot/pr_triage_autopilot.py +0 -827
  168. gflow_cli-0.69.0/scripts/autopilot/pr_triage_gate.py +0 -192
  169. gflow_cli-0.69.0/scripts/autopilot/run_sandboxed_review.sh +0 -172
  170. gflow_cli-0.69.0/scripts/dev/capture_i2v_frame_slots_dom.py +0 -198
  171. gflow_cli-0.69.0/scripts/dev/capture_i2v_intercept_submit.py +0 -262
  172. gflow_cli-0.69.0/scripts/dev/capture_i2v_post_bind_state.py +0 -288
  173. gflow_cli-0.69.0/scripts/dev/capture_image_add_media_dom.py +0 -184
  174. gflow_cli-0.69.0/scripts/dev/spike_character_prompt_format.py +0 -121
  175. gflow_cli-0.69.0/tests/api/test_client_migrated_mint.py +0 -62
  176. gflow_cli-0.69.0/tests/autopilot/test_pr_triage_autopilot.py +0 -1065
  177. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.agents/plugins/marketplace.json +0 -0
  178. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/README.md +0 -0
  179. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/active.md +0 -0
  180. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/branch-review.md +0 -0
  181. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/changelog.md +0 -0
  182. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/check.md +0 -0
  183. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/doc-review.md +0 -0
  184. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/issue-assessment.md +0 -0
  185. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/issue-resolve.md +0 -0
  186. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/known-issues.md +0 -0
  187. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/live-verify.md +0 -0
  188. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/llm-council.md +0 -0
  189. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/next.md +0 -0
  190. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/plan.md +0 -0
  191. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/pr-council-review.md +0 -0
  192. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/predict.md +0 -0
  193. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/release.md +0 -0
  194. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/scenario.md +0 -0
  195. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/sonar.md +0 -0
  196. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.claude/commands/gflow/status.md +0 -0
  197. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.env.template +0 -0
  198. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.gitattributes +0 -0
  199. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/CODEOWNERS +0 -0
  200. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/FUNDING.yml +0 -0
  201. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  202. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/copilot-instructions.md +0 -0
  203. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/workflows/ci.yml +0 -0
  204. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/workflows/deps-watch.yml +0 -0
  205. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/workflows/external-pr-triage.yml +0 -0
  206. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/workflows/governance-advisory.yml +0 -0
  207. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/workflows/governance-benchmark.yml +0 -0
  208. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/workflows/labels.yml +0 -0
  209. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/workflows/main-base-guard.yml +0 -0
  210. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/workflows/scorecard.yml +0 -0
  211. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/workflows/selector-probe.yml +0 -0
  212. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.github/workflows/star-history-watch.yml +0 -0
  213. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.gitleaks.toml +0 -0
  214. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.pre-commit-config.yaml +0 -0
  215. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/.secrets.baseline +0 -0
  216. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/CLAUDE.md +0 -0
  217. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/CONFIGURATION.md +0 -0
  218. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/DISCLAIMER.md +0 -0
  219. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/LICENSE +0 -0
  220. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/PLAN.md +0 -0
  221. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/README.md +0 -0
  222. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/RELEASE.md +0 -0
  223. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/ROADMAP.md +0 -0
  224. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/conftest.py +0 -0
  225. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/deploy/logrotate-pr-triage +0 -0
  226. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docker-compose.yml +0 -0
  227. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/ACCOUNT_SAFETY.md +0 -0
  228. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/AGENT_UI_E2E.md +0 -0
  229. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/AGENT_UI_RECON.md +0 -0
  230. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/ARCHITECTURE.md +0 -0
  231. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/ASSET_TAGGING_RECON.md +0 -0
  232. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/AUTHENTICATION.md +0 -0
  233. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/DATA_LAYER.md +0 -0
  234. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/DEBUGGING.md +0 -0
  235. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/DEMOS.md +0 -0
  236. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/DEVELOPMENT.md +0 -0
  237. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/E2E_TESTING.md +0 -0
  238. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/EXTERNAL_STORAGE.md +0 -0
  239. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/GOVERNANCE_BENCHMARK.md +0 -0
  240. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/IMAGE_UPSCALE_RECON.md +0 -0
  241. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/INSTRUCTIONS.md +0 -0
  242. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_data_layer.md +0 -0
  243. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_image_batch.md +0 -0
  244. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_playwright_1.61.md +0 -0
  245. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_reference_entity_guard.md +0 -0
  246. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.10.0.md +0 -0
  247. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.11.0.md +0 -0
  248. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.12.0.md +0 -0
  249. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.13.0.md +0 -0
  250. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.16.0.md +0 -0
  251. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.17.0.md +0 -0
  252. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.18.0.md +0 -0
  253. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.19.0.md +0 -0
  254. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.20.0.md +0 -0
  255. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.20.1.md +0 -0
  256. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.21.0.md +0 -0
  257. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.22.0.md +0 -0
  258. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.23.0.md +0 -0
  259. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.24.0.md +0 -0
  260. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.25.0.md +0 -0
  261. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.26.0.md +0 -0
  262. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.27.0.md +0 -0
  263. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.27.1.md +0 -0
  264. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.28.0.md +0 -0
  265. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.29.0.md +0 -0
  266. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.30.0.md +0 -0
  267. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.31.0.md +0 -0
  268. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.32.0.md +0 -0
  269. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.32.1.md +0 -0
  270. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.33.0.md +0 -0
  271. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.34.0.md +0 -0
  272. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.35.0.md +0 -0
  273. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.36.0.md +0 -0
  274. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.37.0.md +0 -0
  275. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.38.0.md +0 -0
  276. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.38.1.md +0 -0
  277. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.39.0.md +0 -0
  278. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.40.0-production-readiness.md +0 -0
  279. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.40.0.md +0 -0
  280. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.41.0.md +0 -0
  281. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.42.0.md +0 -0
  282. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.43.0.md +0 -0
  283. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.44.0.md +0 -0
  284. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.45.0.md +0 -0
  285. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.46.0.md +0 -0
  286. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.46.1.md +0 -0
  287. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.47.0.md +0 -0
  288. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.48.0.md +0 -0
  289. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.49.0.md +0 -0
  290. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.50.0.md +0 -0
  291. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.51.0.md +0 -0
  292. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.52.0.md +0 -0
  293. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.54.0.md +0 -0
  294. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.55.0.md +0 -0
  295. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.56.0.md +0 -0
  296. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.57.0.md +0 -0
  297. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.57.1.md +0 -0
  298. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.58.0.md +0 -0
  299. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.59.0.md +0 -0
  300. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.60.0.md +0 -0
  301. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.61.0.md +0 -0
  302. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.62.0.md +0 -0
  303. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.62.1.md +0 -0
  304. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.63.0.md +0 -0
  305. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.64.0.md +0 -0
  306. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.65.0.md +0 -0
  307. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.66.0.md +0 -0
  308. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.66.1.md +0 -0
  309. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.66.2.md +0 -0
  310. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.66.3.md +0 -0
  311. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.67.0.md +0 -0
  312. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.68.0.md +0 -0
  313. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.7.0.md +0 -0
  314. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.8.1.md +0 -0
  315. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.9.0.md +0 -0
  316. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_v0.9.1.md +0 -0
  317. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/LIVE_VERIFICATION_video_download.md +0 -0
  318. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/MEDIA_LIBRARY.md +0 -0
  319. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/PROMPT_EXPANSION.md +0 -0
  320. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/REFERENCE_STRATEGIES.md +0 -0
  321. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/SECURITY.md +0 -0
  322. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/TOOLS.md +0 -0
  323. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/USER_GUIDE.md +0 -0
  324. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/assets/demo-split-pf.gif +0 -0
  325. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/assets/example-run.gif +0 -0
  326. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/assets/examples.webp +0 -0
  327. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/medium_tutorial.md +0 -0
  328. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/schemas/movie-handoff.schema.json +0 -0
  329. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/sonar-cleanup-tracker.md +0 -0
  330. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/README.md +0 -0
  331. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/agents-md-vs-llms-txt.md +0 -0
  332. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/background-e2e-pytest-pattern.md +0 -0
  333. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/bdd-stubs-mirror-runtime-signatures.md +0 -0
  334. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/credit-free-route-abort-verification.md +0 -0
  335. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/data-layer-overview.md +0 -0
  336. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/data-layer-test-pollution-trap.md +0 -0
  337. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/doc-examples-are-untested-fixtures.md +0 -0
  338. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/draft-pr-merge-trap.md +0 -0
  339. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/e2e-evidence-is-a-contributor-deliverable.md +0 -0
  340. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/exit-code-16-data-store.md +0 -0
  341. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/flow-capabilities-are-cohort-dependent.md +0 -0
  342. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/flow-credits-videos-only.md +0 -0
  343. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/flow-recon-must-run-on-denon82-ffroliva-migrated.md +0 -0
  344. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/force-color-breaks-cli-tests.md +0 -0
  345. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/full-test-suite-ooms.md +0 -0
  346. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/git-add-all-sweeps-scratch-files.md +0 -0
  347. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/image-video-mode-switch-symmetry.md +0 -0
  348. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/mcp-is-first-class-across-skill-chain.md +0 -0
  349. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/memory-is-working-dir-keyed.md +0 -0
  350. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/on-started-callback-recorder-safety.md +0 -0
  351. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/playwright-click-no-downstream-event-signature.md +0 -0
  352. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/pr-council-review-stale-tree-reads.md +0 -0
  353. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/pr-hygiene-revert-and-multi-commit.md +0 -0
  354. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/pr-must-verify-on-affected-surface.md +0 -0
  355. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/prose-conflicts-hide-in-disjoint-files.md +0 -0
  356. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/pypi-readme-staleness-fix.md +0 -0
  357. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/pypi-rejected-filename-reusable.md +0 -0
  358. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/readme-hybrid-router-pattern.md +0 -0
  359. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/real-browser-auth-mandatory.md +0 -0
  360. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/release-back-merge-gap-recovery.md +0 -0
  361. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/release-signing.md +0 -0
  362. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/release-spec-plan-memory-consolidation.md +0 -0
  363. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/rest-transports-drop-ui-fields.md +0 -0
  364. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/ruff-format-scope-is-src-tests.md +0 -0
  365. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/sonarcloud-hotspot-review-workflow.md +0 -0
  366. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/sonarcloud-new-code-gotchas.md +0 -0
  367. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/sonarcloud-pr-issues-scope-s7497.md +0 -0
  368. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/sonarcloud-setup.md +0 -0
  369. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/stale-test-discovery.md +0 -0
  370. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/structlog-cache-logger-off-for-tests.md +0 -0
  371. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/ui-selector-drift-error-exit-23.md +0 -0
  372. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/verification-ledger-5-layer.md +0 -0
  373. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/video-model-capability-matrix.md +0 -0
  374. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/wheel-build-sanity-gate.md +0 -0
  375. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/windows-dev-quirks.md +0 -0
  376. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/memory/windows-running-launcher-blocks-uv-upgrade.md +0 -0
  377. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-06-12-issue-174-library-ui-attach/PLAN.md +0 -0
  378. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-06-22-mcp-server/PLAN.md +0 -0
  379. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-06-22-mcp-server/PREDICT.md +0 -0
  380. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-06-22-mcp-server/SCENARIO.md +0 -0
  381. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PLAN.md +0 -0
  382. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PREDICT.md +0 -0
  383. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/SCENARIO.md +0 -0
  384. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-06-24-gflow-studio-scaffold/PLAN.md +0 -0
  385. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-06-24-rest-api-layer/PLAN.md +0 -0
  386. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-06-26-mcp-e2e-test/PLAN.md +0 -0
  387. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-07-08-pr-triage-autopilot/PLAN.md +0 -0
  388. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-07-09-camoufox-adoption/PLAN.md +0 -0
  389. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-07-14-storyboarding-and-visual-curation/PLAN.md +0 -0
  390. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-07-18-asset-tagging/PLAN.md +0 -0
  391. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-07-19-live-verify/PLAN.md +0 -0
  392. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-07-19-production-readiness-browser-lifecycle.md +0 -0
  393. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-07-19-production-readiness-driver-cdp-verification.md +0 -0
  394. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-07-19-production-readiness-public-truth.md +0 -0
  395. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-07-19-production-readiness-queue-safety.md +0 -0
  396. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-07-26-character-prompt-polishing/PLAN.md +0 -0
  397. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-07-26-project-name-management/PLAN.md +0 -0
  398. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-07-26-self-documenting-errors/PLAN.md +0 -0
  399. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-07-27-overlay-banner-dismissal/PLAN.md +0 -0
  400. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/PLAN.md +0 -0
  401. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/SCENARIO.md +0 -0
  402. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-04-mcp-tasks/PLAN.md +0 -0
  403. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-04-output-hardening/PLAN.md +0 -0
  404. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/PLAN.md +0 -0
  405. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/SCENARIO.md +0 -0
  406. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/PLAN.md +0 -0
  407. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/SCENARIO.md +0 -0
  408. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/PLAN.md +0 -0
  409. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/SCENARIO.md +0 -0
  410. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/PLAN.md +0 -0
  411. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/SCENARIO.md +0 -0
  412. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/PLAN.md +0 -0
  413. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/SCENARIO.md +0 -0
  414. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/PLAN.md +0 -0
  415. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/SCENARIO.md +0 -0
  416. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/PLAN.md +0 -0
  417. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/SCENARIO.md +0 -0
  418. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-21-selector-registry.md +0 -0
  419. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-08-25-workflow-hardening-gaps.md +0 -0
  420. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/plans/2026-09-01-video-extend/PLAN.md +0 -0
  421. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/research/2026-06-27-tool-abstraction-evaluation.md +0 -0
  422. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/specs/2026-06-29-issue-assessment-workflow-design.md +0 -0
  423. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/specs/2026-07-04-pr-triage-autopilot-design.md +0 -0
  424. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/specs/2026-07-18-asset-tagging-design.md +0 -0
  425. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/specs/2026-07-19-live-verify-design.md +0 -0
  426. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/specs/2026-07-19-production-readiness-hardening-design.md +0 -0
  427. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/specs/2026-08-21-selector-registry-design.md +0 -0
  428. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/specs/2026-08-26-model-attribution-provenance.md +0 -0
  429. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/specs/2026-08-26-model-cost-quota-catalog.md +0 -0
  430. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/specs/2026-08-27-changelog-modal-precondition-design.md +0 -0
  431. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/spikes/2026-07-09-camoufox-waf-403.md +0 -0
  432. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/spikes/2026-07-12-ui-cohort-backend-config.md +0 -0
  433. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/spikes/2026-07-17-production-readiness-assessment.md +0 -0
  434. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/spikes/2026-08-01-mcp-2026-07-28-spec-impact.md +0 -0
  435. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/spikes/2026-08-14-video-model-capability-matrix.md +0 -0
  436. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/spikes/2026-08-15-picker-tile-alt-text.md +0 -0
  437. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/spikes/2026-08-31-veo-extend-route-recon.md +0 -0
  438. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/spikes/2026-09-04-migrated-host-handoff-mechanism.md +0 -0
  439. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/spikes/2026-09-05-migrated-frames-attach.md +0 -0
  440. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md +0 -0
  441. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/docs/superpowers/spikes/2026-09-05-migrated-model-menu-lower-priority.md +0 -0
  442. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/examples/README.md +0 -0
  443. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/examples/batch_from_config.py +0 -0
  444. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/examples/multi_prompt_t2i.py +0 -0
  445. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/examples/sample_config.json +0 -0
  446. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/examples/sample_prompts.txt +0 -0
  447. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/examples/single_image_t2i.py +0 -0
  448. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/examples/workflow_chain.py +0 -0
  449. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/index.html +0 -0
  450. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/llms.txt +0 -0
  451. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/samples/README.md +0 -0
  452. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/samples/captured/01_upload_image.json +0 -0
  453. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/samples/captured/02_batchAsyncGenerateVideoText.json +0 -0
  454. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/samples/captured/03_batchCheckAsyncVideoGenerationStatus.json +0 -0
  455. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/samples/captured/04_archive_workflow.json +0 -0
  456. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/samples/captured/05_createProject.json +0 -0
  457. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/samples/captured/06_batchGenerateImages.json +0 -0
  458. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/samples/captured/07_batchGenerateImages_seeded.json +0 -0
  459. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/samples/captured/08_batchAsyncGenerateVideoStartAndEndImage.json +0 -0
  460. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/samples/captured/09_batchAsyncGenerateVideoReferenceImages.json +0 -0
  461. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/samples/captured/10_batchCheckAsyncVideoGenerationStatus_successful.json +0 -0
  462. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/samples/captured/11_batchCheckAsyncVideoGenerationStatus_failed.json +0 -0
  463. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/samples/captured/12_create_scene.json +0 -0
  464. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/samples/captured/13_sceneWorkflows_update.json +0 -0
  465. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/samples/captured/14_get_scene_workflows.json +0 -0
  466. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/samples/captured/15_commit_flowWorkflow.json +0 -0
  467. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/canary/register_task.ps1 +0 -0
  468. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/canary/run_canary.py +0 -0
  469. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/ci/check_council_memory.py +0 -0
  470. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/ci/check_doc_links.py +0 -0
  471. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/ci/check_materiality.py +0 -0
  472. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/ci/check_repo_hygiene.py +0 -0
  473. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/ci/check_test_count.py +0 -0
  474. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/ci/check_website_docs_pii.py +0 -0
  475. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/ci/generate_website_docs.py +0 -0
  476. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/debug_editor.py +0 -0
  477. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/debug_gen_settings.py +0 -0
  478. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/debug_settings.py +0 -0
  479. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/_recording_client.py +0 -0
  480. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/_spike_common.py +0 -0
  481. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/active_plan.py +0 -0
  482. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/analyze_agent_ui_capture.py +0 -0
  483. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/capture_frames_mode_trigger_ligature.py +0 -0
  484. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/capture_lower_priority_model_cost.py +0 -0
  485. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/capture_migrated_model_menu.py +0 -0
  486. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/capture_project_listing.py +0 -0
  487. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/capture_r2v_ingredient_lifecycle.py +0 -0
  488. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/capture_sidebar_state_dom.py +0 -0
  489. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/capture_video_model_capability_matrix.py +0 -0
  490. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/cdp_drive_and_probe.py +0 -0
  491. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/character_create_spike.py +0 -0
  492. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/character_create_spike_v2.py +0 -0
  493. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/dump_character_selectors.js +0 -0
  494. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/live_verify_mcp_tasks.py +0 -0
  495. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/live_verify_policy_400_v060.py +0 -0
  496. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/live_verify_video_model_select.py +0 -0
  497. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/make_project.py +0 -0
  498. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/materiality_backtest.py +0 -0
  499. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/measure_html_lang_settle.py +0 -0
  500. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/measure_locale_probe.py +0 -0
  501. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/measure_migrated_host_flip.py +0 -0
  502. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/patch_character.py +0 -0
  503. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/skillopt/README.md +0 -0
  504. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/skillopt/harness.py +0 -0
  505. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/skillopt/tasks.json +0 -0
  506. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/sonar-local-scan.sh +0 -0
  507. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/sonar-pre-push-gate.sh +0 -0
  508. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_changelog_capture.py +0 -0
  509. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_char_editor_dom.py +0 -0
  510. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_char_gen_capture.py +0 -0
  511. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_extend_model_recon.py +0 -0
  512. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_extend_ourstack_verify.py +0 -0
  513. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_extend_route_capture.py +0 -0
  514. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_extend_submit_capture.py +0 -0
  515. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_extend_ui_recon.py +0 -0
  516. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_image_upscale_capture.py +0 -0
  517. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_image_upscale_drive.py +0 -0
  518. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_image_upscale_recaptcha_action.py +0 -0
  519. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_image_upscale_rest_probe.py +0 -0
  520. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_incident_live.py +0 -0
  521. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_issue170_picker_locale_recon.py +0 -0
  522. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_issue174_library_ui_recon.py +0 -0
  523. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_issue313_agent_mode_controls.py +0 -0
  524. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_issue314_picker_filename_search.py +0 -0
  525. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_issue404_count_tabs_recon.py +0 -0
  526. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_locale_poison.py +0 -0
  527. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_migrated_duration_by_model.py +0 -0
  528. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_migrated_editor_dom_inventory.py +0 -0
  529. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_migrated_frames_attach.py +0 -0
  530. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_migrated_host_trigger.py +0 -0
  531. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_migrated_submit_capture.py +0 -0
  532. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_migration_flag_bootstrap.py +0 -0
  533. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_mode_roundtrip.py +0 -0
  534. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_mode_switch_agentic_to_classic.py +0 -0
  535. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_model_inventory.py +0 -0
  536. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_movie_attach_payload.py +0 -0
  537. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_movie_entity_recon.py +0 -0
  538. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_movie_gen_capture.py +0 -0
  539. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_movie_picker_select.py +0 -0
  540. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_movie_voice_list.py +0 -0
  541. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_patch_entity.py +0 -0
  542. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/spike_trpc_origin_referer_401.py +0 -0
  543. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/verify_lang_settle_fix.py +0 -0
  544. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/verify_language_agnostic.py +0 -0
  545. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/verify_locale_navigation_race.py +0 -0
  546. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/dev/verify_model_attribution.py +0 -0
  547. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/diag/README.md +0 -0
  548. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/diag/capture_flow_traffic.py +0 -0
  549. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/diag/diag_aisandbox_bearer.py +0 -0
  550. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/diag/memory_profile.py +0 -0
  551. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/diag/recaptcha_mint.py +0 -0
  552. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/diag/spike_387_openai_compat.py +0 -0
  553. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/e2e/agentic_image_e2e.ps1 +0 -0
  554. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/e2e/capture_agent_toggle.py +0 -0
  555. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/probe/run_probe.py +0 -0
  556. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/probe/spike_auth_matrix.py +0 -0
  557. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/record_demo.ps1 +0 -0
  558. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/smoke_image.py +0 -0
  559. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/smoke_video_editor.py +0 -0
  560. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/smoke_worker_style.py +0 -0
  561. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/spike_waf_camoufox.py +0 -0
  562. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/scripts/verify_chrome_auth_viability.py +0 -0
  563. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/README.md +0 -0
  564. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/changelog/SKILL.md +0 -0
  565. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/check/SKILL.md +0 -0
  566. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/doc-review/SKILL.md +0 -0
  567. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/issue-resolve/SKILL.md +0 -0
  568. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/known-issues/SKILL.md +0 -0
  569. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/live-verify/SKILL.md +0 -0
  570. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/llm-council/SKILL.md +0 -0
  571. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/plan/SKILL.md +0 -0
  572. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/predict/SKILL.md +0 -0
  573. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/release/SKILL.md +0 -0
  574. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/scenario/SKILL.md +0 -0
  575. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/sonar/SKILL.md +0 -0
  576. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/status/SKILL.md +0 -0
  577. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/video-production/clip_qa.py +0 -0
  578. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/video-production/composition.md +0 -0
  579. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/video-production/failure-modes.md +0 -0
  580. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/skills/video-production/tasks.json +0 -0
  581. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/sonar-project.properties +0 -0
  582. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/__main__.py +0 -0
  583. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/__init__.py +0 -0
  584. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/_engine.py +0 -0
  585. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/_retry.py +0 -0
  586. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/_sapisidhash.py +0 -0
  587. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/character.py +0 -0
  588. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/credits.py +0 -0
  589. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/dto.py +0 -0
  590. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/extend_chain.py +0 -0
  591. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/image.py +0 -0
  592. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/image_upscale.py +0 -0
  593. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/recaptcha.py +0 -0
  594. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/routes.py +0 -0
  595. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/scene.py +0 -0
  596. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/__init__.py +0 -0
  597. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/_common.py +0 -0
  598. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/_fingerprint.py +0 -0
  599. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/base.py +0 -0
  600. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/batchexecute.py +0 -0
  601. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/drivers/__init__.py +0 -0
  602. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/drivers/agentic.py +0 -0
  603. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/drivers/base.py +0 -0
  604. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/drivers/classic.py +0 -0
  605. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/drivers/factory.py +0 -0
  606. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/experimental/__init__.py +0 -0
  607. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/experimental/bearer.py +0 -0
  608. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/experimental/evaluate_fetch.py +0 -0
  609. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/experimental/sapisidhash.py +0 -0
  610. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/mode_control.py +0 -0
  611. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/transports/ui_automation_video.py +0 -0
  612. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/video.py +0 -0
  613. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/api/video_extend.py +0 -0
  614. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/auth/__init__.py +0 -0
  615. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/auth/base.py +0 -0
  616. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/auth/cookies.py +0 -0
  617. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/auth/factory.py +0 -0
  618. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/auth/internal_chromium.py +0 -0
  619. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/auth/strategies.py +0 -0
  620. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/auth/verification.py +0 -0
  621. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/browser_manager.py +0 -0
  622. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/chain.py +0 -0
  623. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/chain_manifest.py +0 -0
  624. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/cli.py +0 -0
  625. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/cli_credits.py +0 -0
  626. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/cli_data.py +0 -0
  627. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/cli_doctor.py +0 -0
  628. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/cli_instructions.py +0 -0
  629. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/cli_models.py +0 -0
  630. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/cli_movie.py +0 -0
  631. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/cli_project.py +0 -0
  632. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/cli_run.py +0 -0
  633. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/cli_scene.py +0 -0
  634. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/cli_tools.py +0 -0
  635. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/cli_update.py +0 -0
  636. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/composition.py +0 -0
  637. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/config.py +0 -0
  638. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/__init__.py +0 -0
  639. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/chain_repo.py +0 -0
  640. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/migrations/0001_initial.sql +0 -0
  641. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/migrations/0002_add_cloud_storage.sql +0 -0
  642. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/migrations/0003_add_scene_tables.sql +0 -0
  643. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/migrations/0004_add_scene_output_path.sql +0 -0
  644. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/migrations/0005_add_chain_links.sql +0 -0
  645. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/migrations/0006_add_operations_metadata.sql +0 -0
  646. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/migrations/0007_queue.sql +0 -0
  647. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/migrations/0008_add_operation_expanded_prompt.sql +0 -0
  648. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/migrations/0009_queue_claims.sql +0 -0
  649. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/migrations/__init__.py +0 -0
  650. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/models.py +0 -0
  651. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/queries.py +0 -0
  652. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/redaction.py +0 -0
  653. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/repository.py +0 -0
  654. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/data/store.py +0 -0
  655. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/exceptions.py +0 -0
  656. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/file_integrity.py +0 -0
  657. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/flow_selectors/__init__.py +0 -0
  658. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/flow_selectors/grading.py +0 -0
  659. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/flow_selectors/model.py +0 -0
  660. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/flow_selectors/registry.py +0 -0
  661. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/image_batch.py +0 -0
  662. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/json_output.py +0 -0
  663. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/mcp/__init__.py +0 -0
  664. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/mcp/prompts.py +0 -0
  665. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/mcp/resources.py +0 -0
  666. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/mcp/server.py +0 -0
  667. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/mcp/setup.py +0 -0
  668. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/mcp/tasks_extension.py +0 -0
  669. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/media.py +0 -0
  670. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/movie_manifest.py +0 -0
  671. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/observability.py +0 -0
  672. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/paths.py +0 -0
  673. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/profile_lease.py +0 -0
  674. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/profile_store.py +0 -0
  675. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/redaction.py +0 -0
  676. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/services/__init__.py +0 -0
  677. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/services/catalog_sync.py +0 -0
  678. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/services/credits.py +0 -0
  679. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/services/doctor.py +0 -0
  680. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/services/mentions.py +0 -0
  681. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/storage.py +0 -0
  682. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/tools/__init__.py +0 -0
  683. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/tools/banned.py +0 -0
  684. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/tools/builtin/__init__.py +0 -0
  685. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/tools/builtin/creative-director.toml +0 -0
  686. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/tools/builtin/reverse-engineer.toml +0 -0
  687. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/tools/builtin/storyboard.toml +0 -0
  688. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/tools/expander.py +0 -0
  689. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/tools/invocation.py +0 -0
  690. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/tools/loader.py +0 -0
  691. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/tools/registry.py +0 -0
  692. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/tools/runtime.py +0 -0
  693. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/tools/spec.py +0 -0
  694. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/ui/app.py +0 -0
  695. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/ui/server.py +0 -0
  696. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/update_check.py +0 -0
  697. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/winsec.py +0 -0
  698. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/worker/codec.py +0 -0
  699. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/worker/daemon.py +0 -0
  700. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/src/gflow_cli/worker/queue.py +0 -0
  701. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tasks/lessons.md +0 -0
  702. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/test_assets/sample_batch.json +0 -0
  703. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/test_assets/sample_batch.tsv +0 -0
  704. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/test_assets/sample_batch_invalid.tsv +0 -0
  705. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/__init__.py +0 -0
  706. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/__init__.py +0 -0
  707. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/fixtures/character_gen_response.json +0 -0
  708. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/fixtures/patch_entity_response.json +0 -0
  709. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/fixtures/project_initial_data_extend_models.json +0 -0
  710. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_aisandbox_auth_error.py +0 -0
  711. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_aisandbox_auth_headers.py +0 -0
  712. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_bearer_redaction.py +0 -0
  713. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_character.py +0 -0
  714. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_client.py +0 -0
  715. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_client_character.py +0 -0
  716. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_client_delete_characters.py +0 -0
  717. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_client_errors.py +0 -0
  718. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_client_extend.py +0 -0
  719. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_client_generate_character.py +0 -0
  720. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_client_incidents.py +0 -0
  721. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_client_launch_kwargs.py +0 -0
  722. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_client_locale_cache.py +0 -0
  723. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_client_patch_entity.py +0 -0
  724. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_client_scene.py +0 -0
  725. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_client_upscale.py +0 -0
  726. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_concurrency.py +0 -0
  727. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_credits.py +0 -0
  728. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_credits_http.py +0 -0
  729. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_dto.py +0 -0
  730. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_engine.py +0 -0
  731. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_extend_chain.py +0 -0
  732. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_image.py +0 -0
  733. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_image_dto.py +0 -0
  734. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_image_upscale.py +0 -0
  735. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_post_json_aisandbox_auth.py +0 -0
  736. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_recaptcha.py +0 -0
  737. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_retry.py +0 -0
  738. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_routes.py +0 -0
  739. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_routes_character.py +0 -0
  740. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_routes_locale.py +0 -0
  741. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_routes_scene.py +0 -0
  742. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_sapisidhash_helper.py +0 -0
  743. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_scene_models.py +0 -0
  744. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_video.py +0 -0
  745. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_video_extend.py +0 -0
  746. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_video_request.py +0 -0
  747. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/test_video_status_poll.py +0 -0
  748. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/__init__.py +0 -0
  749. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/conftest.py +0 -0
  750. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/drivers/__init__.py +0 -0
  751. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/drivers/test_agentic.py +0 -0
  752. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/drivers/test_classic.py +0 -0
  753. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/drivers/test_factory.py +0 -0
  754. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_agentic_cohort_detection.py +0 -0
  755. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_base.py +0 -0
  756. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_batchexecute.py +0 -0
  757. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_bearer.py +0 -0
  758. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_common.py +0 -0
  759. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_evaluate_fetch.py +0 -0
  760. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_factory.py +0 -0
  761. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_fingerprint.py +0 -0
  762. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_locale_navigation.py +0 -0
  763. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_migrated_host_gate.py +0 -0
  764. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_migrated_route.py +0 -0
  765. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_mode_control.py +0 -0
  766. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_model_selection_loud.py +0 -0
  767. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_navigation_settled.py +0 -0
  768. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_overlay_precondition.py +0 -0
  769. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_policy_400.py +0 -0
  770. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_sapisidhash.py +0 -0
  771. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_selector_symmetry.py +0 -0
  772. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_transport_timeout.py +0 -0
  773. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_ui_automation_batch.py +0 -0
  774. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_ui_automation_image_mode.py +0 -0
  775. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_ui_automation_video.py +0 -0
  776. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/api/transports/test_video_model_selection_loud.py +0 -0
  777. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/auth/strategies/test_factory.py +0 -0
  778. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/auth/test_cookies.py +0 -0
  779. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/auth/test_real_chrome.py +0 -0
  780. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/auth/test_verification.py +0 -0
  781. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/auth/test_windows_acl.py +0 -0
  782. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/__init__.py +0 -0
  783. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_auth_status.py +0 -0
  784. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_auth_list.py +0 -0
  785. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_character.py +0 -0
  786. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_character_create.py +0 -0
  787. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_credits.py +0 -0
  788. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_data.py +0 -0
  789. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_data_errors.py +0 -0
  790. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_data_errors_retention.py +0 -0
  791. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_data_sync.py +0 -0
  792. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_doctor.py +0 -0
  793. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_image.py +0 -0
  794. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_image_seed_removed.py +0 -0
  795. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_image_selector_drift.py +0 -0
  796. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_image_upscale.py +0 -0
  797. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_image_uuid_ref_enrichment.py +0 -0
  798. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_instructions.py +0 -0
  799. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_models.py +0 -0
  800. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_movie.py +0 -0
  801. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_run.py +0 -0
  802. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_scene.py +0 -0
  803. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_tools.py +0 -0
  804. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_video_chain.py +0 -0
  805. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_cli_video_extend.py +0 -0
  806. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_error_handling.py +0 -0
  807. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_failure_funnel.py +0 -0
  808. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_helpers.py +0 -0
  809. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_incident_output.py +0 -0
  810. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_movie_manifest.py +0 -0
  811. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_movie_manifest_style_variants.py +0 -0
  812. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_predictable_output.py +0 -0
  813. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_run_with_handlers_interrupt.py +0 -0
  814. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_settings_validation.py +0 -0
  815. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/cli/test_t2i_multi_prompt.py +0 -0
  816. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/composition/test_character.py +0 -0
  817. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/composition/test_compose_prompt.py +0 -0
  818. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/composition/test_handoff.py +0 -0
  819. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/composition/test_style_variants.py +0 -0
  820. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/composition/test_style_variants_e2e.py +0 -0
  821. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/conftest.py +0 -0
  822. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/data/__init__.py +0 -0
  823. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/data/test_chain_repo.py +0 -0
  824. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/data/test_failure_recording.py +0 -0
  825. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/data/test_models.py +0 -0
  826. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/data/test_null_columns_stay_null.py +0 -0
  827. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/data/test_packaging.py +0 -0
  828. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/data/test_recorder.py +0 -0
  829. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/data/test_recorder_character.py +0 -0
  830. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/data/test_redaction.py +0 -0
  831. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/data/test_repository.py +0 -0
  832. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/data/test_scene_persistence.py +0 -0
  833. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/data/test_settings_and_errors.py +0 -0
  834. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/data/test_store.py +0 -0
  835. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/data/test_store_migrations.py +0 -0
  836. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/dev/test_recording_client.py +0 -0
  837. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/__init__.py +0 -0
  838. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_aisandbox_auth_live.py +0 -0
  839. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_asset_tagging_e2e.py +0 -0
  840. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_auth_verification_e2e.py +0 -0
  841. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_cancellation_e2e.py +0 -0
  842. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_chain_e2e.py +0 -0
  843. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_classic_count_setter_e2e.py +0 -0
  844. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_crash_recovery_e2e.py +0 -0
  845. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_credits_e2e.py +0 -0
  846. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_daemon_e2e.py +0 -0
  847. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_data_layer_e2e.py +0 -0
  848. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_data_sync_names_e2e.py +0 -0
  849. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_entity_provenance_e2e.py +0 -0
  850. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_entity_smuggling_e2e.py +0 -0
  851. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_i2v_flags_e2e.py +0 -0
  852. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_image_batch_e2e.py +0 -0
  853. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_image_i2i_ref_cap_e2e.py +0 -0
  854. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_image_uuid_ref_e2e.py +0 -0
  855. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_incident_quality_e2e.py +0 -0
  856. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_json_output_e2e.py +0 -0
  857. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_live_agentic_instructions.py +0 -0
  858. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_locale_selectors_e2e.py +0 -0
  859. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_migrated_i2v_e2e.py +0 -0
  860. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_project_naming_e2e.py +0 -0
  861. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_refresh_on_miss_e2e.py +0 -0
  862. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_scene_compose_live.py +0 -0
  863. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_tools_e2e.py +0 -0
  864. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_transports_e2e.py +0 -0
  865. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_video_r2v_ref_cap_e2e.py +0 -0
  866. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_video_r2v_uuid_name_e2e.py +0 -0
  867. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/e2e/test_video_t2v_e2e.py +0 -0
  868. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/__init__.py +0 -0
  869. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/asset_tagging.feature +0 -0
  870. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/auth.feature +0 -0
  871. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/auth_login.feature +0 -0
  872. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/character_create.feature +0 -0
  873. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/character_read.feature +0 -0
  874. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/conftest.py +0 -0
  875. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/credits.feature +0 -0
  876. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/duration_tab_drift.feature +0 -0
  877. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/entity_provenance.feature +0 -0
  878. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/image.feature +0 -0
  879. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/image_batch_references.feature +0 -0
  880. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/image_upscale.feature +0 -0
  881. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/incident_diagnostics.feature +0 -0
  882. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/instructions.feature +0 -0
  883. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/latched_locale_recovery.feature +0 -0
  884. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/locale_picker_include.feature +0 -0
  885. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/mcp_tasks.feature +0 -0
  886. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/media_picker_tiers.feature +0 -0
  887. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/migrated_driver.feature +0 -0
  888. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/migrated_host_gate.feature +0 -0
  889. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/migrated_i2v.feature +0 -0
  890. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/output_hardening.feature +0 -0
  891. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_asset_tagging_steps.py +0 -0
  892. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_auth_login_steps.py +0 -0
  893. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_auth_steps.py +0 -0
  894. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_character_create_steps.py +0 -0
  895. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_character_read_steps.py +0 -0
  896. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_credits_steps.py +0 -0
  897. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_image_steps.py +0 -0
  898. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_image_upscale_steps.py +0 -0
  899. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_incident_diagnostics_steps.py +0 -0
  900. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_instructions_steps.py +0 -0
  901. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_locale_picker_include_steps.py +0 -0
  902. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_mcp_tasks_steps.py +0 -0
  903. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_media_picker_tiers_steps.py +0 -0
  904. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_migrated_driver_steps.py +0 -0
  905. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_migrated_host_gate_steps.py +0 -0
  906. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_migrated_i2v_steps.py +0 -0
  907. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_output_hardening_steps.py +0 -0
  908. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_step_collision_guard.py +0 -0
  909. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_video_agent_ui_steps.py +0 -0
  910. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/test_video_chain_steps.py +0 -0
  911. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/video_agent_ui.feature +0 -0
  912. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/features/video_chain.feature +0 -0
  913. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/fixtures/__init__.py +0 -0
  914. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/fixtures/changelog_modal_page.html +0 -0
  915. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/fixtures/doctor_env.py +0 -0
  916. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/fixtures/flow_model_inventory.json +0 -0
  917. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/fixtures/flow_project_listing_media.json +0 -0
  918. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/fixtures/listing_payload.py +0 -0
  919. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/fixtures/seeded_catalog.py +0 -0
  920. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/flow_selectors/__init__.py +0 -0
  921. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/flow_selectors/test_grading.py +0 -0
  922. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/flow_selectors/test_model.py +0 -0
  923. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/flow_selectors/test_model_governance.py +0 -0
  924. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/flow_selectors/test_registry.py +0 -0
  925. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/flow_selectors/test_report.py +0 -0
  926. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/image_batch/__init__.py +0 -0
  927. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/image_batch/test_image_manifest.py +0 -0
  928. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/image_batch/test_jitter_config.py +0 -0
  929. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/image_batch/test_observability_events.py +0 -0
  930. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/integration/__init__.py +0 -0
  931. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/integration/conftest.py +0 -0
  932. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/integration/constants.py +0 -0
  933. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/integration/test_expander_gateway.py +0 -0
  934. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/integration/test_storage_gcs.py +0 -0
  935. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/integration/test_storage_s3.py +0 -0
  936. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/__init__.py +0 -0
  937. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/conftest.py +0 -0
  938. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_auth_status_tool.py +0 -0
  939. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_credits_tool.py +0 -0
  940. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_error_funnel.py +0 -0
  941. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_http_transport.py +0 -0
  942. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_known_issues_resource.py +0 -0
  943. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_migrated_i2v_parity.py +0 -0
  944. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_no_spend.py +0 -0
  945. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_rate_limit_envelope.py +0 -0
  946. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_resources.py +0 -0
  947. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_server.py +0 -0
  948. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_setup.py +0 -0
  949. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_stdio_transport.py +0 -0
  950. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_tasks_extension.py +0 -0
  951. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/mcp/test_tools_instructions.py +0 -0
  952. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_analyze_agent_ui_capture.py +0 -0
  953. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_canary_classify.py +0 -0
  954. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_canary_reexec.py +0 -0
  955. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_capture_locale_invariants.py +0 -0
  956. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_capture_video_model_capability_matrix.py +0 -0
  957. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_check_council_memory.py +0 -0
  958. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_check_materiality.py +0 -0
  959. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_check_repo_hygiene.py +0 -0
  960. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_check_test_count.py +0 -0
  961. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_check_website_docs_pii.py +0 -0
  962. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_codex_plugin.py +0 -0
  963. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_generate_website_docs.py +0 -0
  964. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_materiality_backtest.py +0 -0
  965. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_skillopt_scoring.py +0 -0
  966. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/scripts/test_workflow_hardening.py +0 -0
  967. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/services/__init__.py +0 -0
  968. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/services/test_catalog_sync.py +0 -0
  969. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/services/test_character_create_redaction.py +0 -0
  970. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/services/test_character_gen_no_direct_post.py +0 -0
  971. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/services/test_credits.py +0 -0
  972. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/services/test_doctor.py +0 -0
  973. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/services/test_media_attribution.py +0 -0
  974. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/services/test_mentions_observability.py +0 -0
  975. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/services/test_mentions_parse.py +0 -0
  976. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/services/test_mentions_resolve.py +0 -0
  977. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/services/test_resolve_and_apply.py +0 -0
  978. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/smoke/__init__.py +0 -0
  979. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/smoke/test_profile_account_smoke.py +0 -0
  980. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/smoke/test_real_flow.py +0 -0
  981. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_auth.py +0 -0
  982. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_browser_manager.py +0 -0
  983. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_chain.py +0 -0
  984. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_chain_manifest.py +0 -0
  985. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_cli_data.py +0 -0
  986. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_cli_project.py +0 -0
  987. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_cli_update.py +0 -0
  988. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_config.py +0 -0
  989. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_conftest_isolation.py +0 -0
  990. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_data_queries.py +0 -0
  991. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_diagnostics_bundle.py +0 -0
  992. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_diagnostics_events.py +0 -0
  993. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_diagnostics_journal.py +0 -0
  994. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_diagnostics_recorder.py +0 -0
  995. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_diagnostics_retention.py +0 -0
  996. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_diagnostics_sanitize.py +0 -0
  997. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_duration_tab_drift.py +0 -0
  998. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_entity_provenance.py +0 -0
  999. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_errors.py +0 -0
  1000. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_errors_classification.py +0 -0
  1001. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_image_batch_references.py +0 -0
  1002. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_incident_generation_requests.py +0 -0
  1003. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_json_output.py +0 -0
  1004. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_marker_registry.py +0 -0
  1005. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_media.py +0 -0
  1006. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_observability.py +0 -0
  1007. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_overlay_banner_dismissal.py +0 -0
  1008. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_paths.py +0 -0
  1009. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_playwright_pin.py +0 -0
  1010. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_profile_lease.py +0 -0
  1011. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_profile_lease_subprocess.py +0 -0
  1012. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_profile_store.py +0 -0
  1013. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_profile_store_locale.py +0 -0
  1014. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_project_list_urls.py +0 -0
  1015. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_self_documenting_errors.py +0 -0
  1016. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_smoke.py +0 -0
  1017. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/test_update_check.py +0 -0
  1018. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/tools/__init__.py +0 -0
  1019. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/tools/test_banned.py +0 -0
  1020. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/tools/test_expander.py +0 -0
  1021. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/tools/test_invocation.py +0 -0
  1022. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/tools/test_loader.py +0 -0
  1023. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/tools/test_registry.py +0 -0
  1024. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/tools/test_runtime.py +0 -0
  1025. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/tools/test_spec.py +0 -0
  1026. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/ui/test_app.py +0 -0
  1027. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/worker/test_codec.py +0 -0
  1028. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/worker/test_daemon.py +0 -0
  1029. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/worker/test_mcp_daemon_race.py +0 -0
  1030. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/worker/test_queue.py +0 -0
  1031. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/worker/test_queue_multiprocess.py +0 -0
  1032. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/tests/worker/test_queue_reconciliation.py +0 -0
  1033. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/ACCOUNT_SAFETY.md +0 -0
  1034. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/ARCHITECTURE.md +0 -0
  1035. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/AUTHENTICATION.md +0 -0
  1036. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/DATA_LAYER.md +0 -0
  1037. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/DEBUGGING.md +0 -0
  1038. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/DEVELOPMENT.md +0 -0
  1039. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/E2E_TESTING.md +0 -0
  1040. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/EXTERNAL_STORAGE.md +0 -0
  1041. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/INSTRUCTIONS.md +0 -0
  1042. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/MEDIA_LIBRARY.md +0 -0
  1043. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/PROMPT_EXPANSION.md +0 -0
  1044. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/SECURITY.md +0 -0
  1045. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/TOOLS.md +0 -0
  1046. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/USER_GUIDE.md +0 -0
  1047. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/agents.md +0 -0
  1048. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/index.md +0 -0
  1049. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/onboarding-mockup.html +0 -0
  1050. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/onboarding.md +0 -0
  1051. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/docs/stylesheets/extra.css +0 -0
  1052. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/mkdocs.yml +0 -0
  1053. {gflow_cli-0.69.0 → gflow_cli-0.71.0}/website/requirements.in +0 -0
@@ -0,0 +1,10 @@
1
+ ---
2
+ description: Gather evidence from the live Flow surface (DOM, network, HAR) before claiming a feature is broken, missing, or impossible.
3
+ ---
4
+
5
+ # `/gflow:spike` — measure the blackbox
6
+
7
+ **Read `skills/spike/SKILL.md` and follow the protocol**, passing `$ARGUMENTS` as the
8
+ question to answer.
9
+
10
+ > Do **not** call `Skill(skill="spike")` — read the file directly.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gflow",
3
- "version": "0.69.0",
3
+ "version": "0.71.0",
4
4
  "description": "Reusable development and operations workflows for gflow-cli",
5
5
  "author": {
6
6
  "name": "Flavio Oliva",
@@ -111,32 +111,6 @@ updates:
111
111
  applies-to: version-updates
112
112
  patterns: ["*"]
113
113
 
114
- # npm — the PR-triage sandbox's pinned Claude Code CLI
115
- # (scripts/autopilot/package-lock.json, installed via `npm ci` in
116
- # Dockerfile.triage).
117
- - package-ecosystem: "npm"
118
- directory: "/scripts/autopilot"
119
- schedule:
120
- interval: "weekly"
121
- day: "monday"
122
- time: "08:00"
123
- timezone: "Europe/Lisbon"
124
- open-pull-requests-limit: 2
125
- labels:
126
- - "dependencies"
127
-
128
- # Docker — the digest-pinned node:20-slim base of Dockerfile.triage.
129
- - package-ecosystem: "docker"
130
- directory: "/scripts/autopilot"
131
- schedule:
132
- interval: "weekly"
133
- day: "monday"
134
- time: "08:00"
135
- timezone: "Europe/Lisbon"
136
- open-pull-requests-limit: 2
137
- labels:
138
- - "dependencies"
139
-
140
114
  # uv — the hash-pinned MkDocs set for the Pages build
141
115
  # (website/requirements.txt, compiled from website/requirements.in).
142
116
  # "uv", NOT "pip", for the same reason as the root entry: the pip ecosystem
@@ -59,4 +59,4 @@ jobs:
59
59
  url: ${{ steps.deployment.outputs.page_url }}
60
60
  steps:
61
61
  - id: deployment
62
- uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5
62
+ uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5
@@ -73,7 +73,7 @@ jobs:
73
73
  # Configure once at https://pypi.org/manage/account/publishing/
74
74
 
75
75
  - name: Create GitHub Release
76
- uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3
76
+ uses: softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64 # v3
77
77
  with:
78
78
  generate_release_notes: true
79
79
  files: dist/*
@@ -45,6 +45,15 @@ secrets.json
45
45
  .env.local
46
46
  .env.*.local
47
47
 
48
+ # Runtime state written into this repo by tools run FROM this directory.
49
+ # social-publisher's queue defaults to a RELATIVE path (its cli.py: SP_QUEUE_DB,
50
+ # default "state/queue.sqlite"), so invoking it — or its MCP server — with this repo
51
+ # as CWD silently creates state/queue.sqlite here. On 2026-09-07 that produced a
52
+ # second, EMPTY queue that a dry-run then read and reported as "nothing pending",
53
+ # while the real queue sat in social-publisher/state/. Untracked and unignored, it
54
+ # was also one `git add -A` from being committed.
55
+ state/
56
+
48
57
  # Generated outputs
49
58
  out/
50
59
  tmp/
@@ -107,3 +116,12 @@ website/site/
107
116
 
108
117
  # Local git hooks dir (core.hooksPath target) — machine-local tooling, never shipped
109
118
  .githooks/
119
+
120
+ # HAR/DOM spike harness (scripts/dev/har-spike/) — the vendored scripts ARE
121
+ # tracked; everything they generate is not. Captures carry auth cookies, Bearer
122
+ # tokens and prompts, and the npm/agent-browser caches are 34 MB of noise.
123
+ # (No .gitkeep negation here: git never descends into an ignored directory, so a
124
+ # negation for a file inside one is inert. The capture scripts create the dir.)
125
+ scripts/dev/har-spike/artifacts/
126
+ scripts/dev/har-spike/.agent-browser/
127
+ scripts/dev/har-spike/.npm-cache/
@@ -14,6 +14,7 @@ that did not run.
14
14
 
15
15
  | If you are about to… | Load first | Non-negotiable because |
16
16
  |---|---|---|
17
+ | Claim a Flow surface is broken, missing, or impossible | `/gflow:spike <question>` | A selector that misses is evidence about the SELECTOR; "labs-only, ever" came from one 20 s timeout and cost a day |
17
18
  | Touch a GitHub issue | `/gflow:issue-assessment <N>` | Read-only triage precedes any fix; classification changes what "fixing" means |
18
19
  | Propose a transport, auth, selector, or schema change | `/gflow:predict <proposal>` | Five adversarial personas return GO / CAUTION / STOP before code exists |
19
20
  | Start a feature | `/gflow:scenario` → `/gflow:plan` | Edge cases before tasks; tasks before code |
@@ -61,7 +62,8 @@ If you can help unblock a pure HTTP transport (especially for video generation,
61
62
  ## Dev environment tips
62
63
 
63
64
  - `uv sync` then `uv run playwright install chromium`. No global Python install needed.
64
- - Copy `.env.template` to `.env.local`; never commit `.env.local`. It documents every env var.
65
+ - Copy `.env.template` to **`.env`** — either in the directory you run `gflow` from (project-local) or at `$GFLOW_CLI_HOME/.env` (machine-wide); on conflict the CWD one wins. It documents every env var. Both are gitignored; never commit either.
66
+ **Not `.env.local` — nothing loads that file.** `config.py::_env_files()` returns exactly `(<home>/.env, .env)`, so `GFLOW_CLI_*` settings put in `.env.local` are silently ignored and `get_settings()` reports the default as though you had set nothing. Keeping a `.env.local` for credentials **you** read by hand (e.g. `SONAR_TOKEN`) is fine — it is only wrong as a home for gflow's own settings.
65
67
  - Output goes to `./tmp/` for scripts/tests or `$GFLOW_CLI_OUTPUT_DIR` for CLI outputs (defaults to `./out/`).
66
68
  - One-time auth: `gflow auth login --browser chrome` (recommended — a real-Chrome profile is what generation runs need; the default `--browser auto` can also pick the internal strategy, and generation later fails fast on profiles created with a non-chrome strategy).
67
69
  - Use `/gflow:status` to see the current task before starting work; `/gflow:known-issues` before touching auth or reCAPTCHA code paths.
@@ -96,7 +98,7 @@ the five other mirror axes), which no command here can check and no CI gate can
96
98
  - TDD is non-negotiable. Coverage floor: 80% overall.
97
99
  - Documentation is a first-class deliverable. Every behavior, workflow, config, or operator-facing change must update the relevant docs or state why no docs changed in the PR/checklist. `scripts/ci/check_doc_links.py` is a merge gate.
98
100
  - **A PR is not done until its SonarCloud gate is green (zero new issues).** The nine gates above are local/pre-commit; SonarCloud is server-side and runs in CI (`sonar.qualitygate.wait=true` → a red gate turns the `SonarCloud analysis` check red). Before calling a PR merge-ready, verify it with `/gflow:sonar <N>` (it is skipped on fork PRs — maintainer-checked there).
99
- - **E2E is the decisive layer, and it is required for every behavior change that touches a Flow surface.** Run the `tests/e2e/` test that covers the change, or write one — offline-green proves only that *our* code does what we think, never that Flow still behaves as captured. `/gflow:live-verify` does **not** satisfy this: it drives CLI commands by hand into a gitignored note and never runs `pytest -m e2e`. The two are complementary — an e2e test is a re-runnable regression, a live-verify ledger is a narrative record. If you cannot run it, say so explicitly in the PR and a maintainer will; a change touching no Flow surface (docs, help text, exit-code plumbing) is out of scope — say that rather than leaving it blank.
101
+ - **E2E is the decisive layer, and it is required for every behavior change that touches a Flow surface.** Run the `tests/e2e/` test that covers the change, or write one — offline-green proves only that *our* code does what we think, never that Flow still behaves as captured. `/gflow:live-verify` does **not** satisfy this: it drives CLI commands by hand into a gitignored note and never runs `pytest -m e2e`. The two are complementary — an e2e test is a re-runnable regression, a live-verify ledger is a narrative record. A change touching no Flow surface at all (docs, help text, exit-code plumbing) is out of scope — say so explicitly rather than leaving it blank. Anything else follows the **Iron Law** above: run it, or name the external blocker that stops you. "A maintainer will run it" is a handoff, not a verification, and is only available once the blocker is named.
100
102
  - E2E tests require `GFLOW_CLI_E2E_PROFILE` and `-m e2e` (excluded from the default `addopts`, so they never run by accident). Cost sub-markers: `e2e_auth` (zero credits, browser only), `e2e_image` (zero credits, daily cap), `e2e_scene`, `e2e_data`, `e2e_batch`, `e2e_character` (opt in with `GFLOW_CLI_E2E_RUN_CHARACTER=1`), `e2e_video` (spends Veo credits — opt in with `GFLOW_CLI_E2E_RUN_VIDEO=1`). Redact account identifiers and any token or cookie value before pasting output into a PR.
101
103
  - Live tests (`@pytest.mark.live`) opt in via `GFLOW_LIVE=1`.
102
104
 
@@ -104,15 +106,16 @@ the five other mirror axes), which no command here can check and no CI gate can
104
106
 
105
107
  - Type hints everywhere; `pyright` strict on `src/gflow_cli`.
106
108
  - Structured logging only (`structlog`) — **never** raw `print()` or `import logging` in `src/`.
107
- - Errors as RFC 9457 Problem Details with stable per-class exit codes (3–36, e.g. 11 is `ConfigurationError` — including `ProfileLockedError` for same-profile lease contention, 16 is the `DataStoreError` family, 19 `SceneConcatError`, 20 `FrameExtractionError`, 21 `ChainPartialError`, 22 `UpscaleUnavailableError`, 25 `FlowAgentUiError`, 28 `UiModeUnavailableError`, 29 `MentionIndexUnavailableError`, 30 `QueueSchemaError`). See `src/gflow_cli/errors.py::EXIT_CODE_MAP` for the complete mapping. Exit 33 is reserved outside that map: `gflow doctor` findings-present — a successful diagnosis, not an error class.
109
+ - Errors as RFC 9457 Problem Details with stable per-class exit codes (3–37, e.g. 11 is `ConfigurationError` — including `ProfileLockedError` for same-profile lease contention, 16 is the `DataStoreError` family, 19 `SceneConcatError`, 20 `FrameExtractionError`, 21 `ChainPartialError`, 22 `UpscaleUnavailableError`, 25 `FlowAgentUiError`, 28 `UiModeUnavailableError`, 29 `MentionIndexUnavailableError`, 30 `QueueSchemaError`, 37 `InsufficientCreditsError`). See `src/gflow_cli/errors.py::EXIT_CODE_MAP` for the complete mapping. Exit 33 is reserved outside that map: `gflow doctor` findings-present — a successful diagnosis, not an error class.
108
110
  - 100-char line length, `ruff` configured. Imports sorted by `ruff` (isort rules).
109
111
  - **YAGNI / least-code**: prefer the smallest change that works. No speculative abstractions (interface/factory with one implementation), no config or flags nobody sets, no dead constants/helpers, no reinventing the stdlib. Review carries this as its own lens — the **D14 over-engineering** dimension of [`pr-council-review`](skills/pr-council-review/SKILL.md) (baseline, always runs). Its rubric is portable; the `ponytail` plugin (see CONTRIBUTING) is an optional accelerant, not a dependency.
110
112
  - **MCP & CLI Schema Symmetry**: Any updates or additions to user-facing CLI command parameters (e.g., `gflow image t2i`, `gflow video`) must be mirrored in the corresponding MCP tool definitions. Never add option/argument fields to Click commands without updating the MCP server implementation. This symmetry is enforced programmatically in CI via `tests/mcp/test_cli_parity.py` (every CLI leaf command needs a mapped MCP tool or an explicit, reasoned exemption) plus the schema checks in `tests/mcp/test_server.py`.
111
113
 
112
- **That CI gate is command-level only** — it fires on a new *leaf*, and stays green while an
113
- option goes unmirrored, a queued-payload key goes unread, or a tool docstring asserts a
114
- restriction the CLI no longer has. So MCP is a responsibility of **every phase**, not a
115
- post-hoc checklist item. Each skill owns its slice:
114
+ **That gate now covers leaves *and their options*** (`test_every_cli_leaf_has_an_mcp_decision`,
115
+ `test_every_cli_option_reaches_its_mcp_tool`). It still cannot see a queued-payload key that
116
+ goes unread, a tool docstring asserting a restriction the CLI no longer has, or a twin that
117
+ was never *run*. So MCP stays a responsibility of **every phase**, not a post-hoc checklist
118
+ item. Each skill owns its slice:
116
119
 
117
120
  | Phase | Skill | Its MCP duty |
118
121
  |---|---|---|
@@ -142,10 +145,86 @@ the five other mirror axes), which no command here can check and no CI gate can
142
145
 
143
146
  These rules exist because docs alone don't bind under momentum: a "check open PRs first" rule was already written and still got skipped, and a PR was merged without seeing an entangled open one. Follow them on every task.
144
147
 
148
+ ### The Iron Law — done means verified by a run
149
+
150
+ ```
151
+ IF YOU TOUCHED A COMMAND, A FEATURE, OR A FLOW SURFACE,
152
+ YOU RUN ITS E2E TEST. NO RUN = NOT DONE.
153
+ ```
154
+
155
+ Not "tests pass". Not "the gates are green". Not "it's a thin wrapper over code that
156
+ is already covered". **A run, against the real thing, that you watched.** Offline green
157
+ proves our code does what we think it does; it cannot prove Flow still behaves as
158
+ captured, and it cannot prove the surface an agent or a user actually calls is wired to
159
+ the code under test. Everything not exercised is unknown, and unknown ships as a bug.
160
+
161
+ If no e2e test covers the change, **write one** — that is part of the change, not
162
+ follow-up work.
163
+
164
+ **The only permitted exception is a named external blocker** you cannot remove: an
165
+ exhausted API quota, hardware you do not have, an account you do not control, a cohort
166
+ Google has not put you in. Write the blocker down. Then these are **not** blockers, and
167
+ naming one is a rule violation, not a caveat:
168
+
169
+ - "I didn't get to it" · "it's covered by unit tests" · "it's a thin adapter"
170
+ - "the CLI path is verified and it shares the service"
171
+ - "recorded, not omitted"
172
+
173
+ That last one is the dangerous one, because it is a **good** convention being misused.
174
+ Recording an unverified item beats silently dropping it — but it is a record of a
175
+ blocker, never a substitute for a run. **Listing something as unverified that you could
176
+ have verified is the same failure as omitting it, plus a false paper trail.**
177
+
178
+ > **This law is written from the failure it prevents.** v0.69.0 shipped with two items
179
+ > under "Not verified": the MCP twin of the credits path, and 5 of 19 skill-benchmark
180
+ > tasks. Asked why we were going blind, both were verified **within the hour**. The MCP
181
+ > twin was a $0 read-only test — 3 assertions, 58 seconds, and it is now
182
+ > `tests/e2e/test_credits_mcp_e2e.py`. The 5 tasks ran on a model whose quota was still
183
+ > open, against a control run to separate model weakness from skill weakness, and
184
+ > exposed **four real defects** that the words "recorded, not omitted" had made invisible.
185
+ > Neither was ever blocked. Both were labelled instead of run.
186
+
187
+ ### The second law — MCP parity is not a chore, it is the contract
188
+
189
+ ```
190
+ EVERY USER-FACING CLI CAPABILITY HAS AN MCP TWIN,
191
+ OR A RECORDED REASON IT DOES NOT.
192
+ ```
193
+
194
+ The CLI and the MCP server are two doors onto one product. A capability behind only one
195
+ of them is not "mostly shipped" — for whoever is standing at the other door it does not
196
+ exist, and nothing tells them so. Agents cannot read a `--help` they were never given;
197
+ they discover a missing option by getting the wrong result.
198
+
199
+ Parity is **not** satisfied by a command existing. It has to hold at every level the two
200
+ surfaces can drift apart: the leaf, **its options**, the queued-payload keys the worker
201
+ reads back, and the tool docstring's claims about what the CLI does. The canonical list
202
+ is the **six mirror axes**, written out once in
203
+ [`skills/check/SKILL.md`](skills/check/SKILL.md) step 1b and cited from everywhere else —
204
+ never copied, because a duplicated checklist drifts, which is the failure it exists to
205
+ catch.
206
+
207
+ **A twin is a separate surface, so the Iron Law applies to it separately.** Verifying the
208
+ CLI path does not verify the MCP path. They share a service, and the service was never
209
+ the risk — the adapter is. Run both.
210
+
211
+ Where a capability is deliberately CLI-only — an interactive login, a destructive local
212
+ operation, a long-running billed job with no way to take consent — that is a legitimate
213
+ answer. **Record it with its reason** in `tests/mcp/test_cli_parity.py`, and revisit the
214
+ reason when whatever justified it changes.
215
+
216
+ > **Written from a live gap.** `--reference-entity` exists on four leaf commands and no
217
+ > MCP tool exposes the concept at all, while the whole `gflow character` group sits
218
+ > exempt as "not yet ported". The product's entire **identity axis** — create a
219
+ > character, attach a character — is therefore unreachable over MCP, and the parity gate
220
+ > reported full compliance throughout, because it only ever checked that leaves were
221
+ > *mapped*. Found by an option-level sweep, filed as #689, and the gate now checks
222
+ > options too.
223
+
145
224
  - **Check what's already in flight before coding a fix, opening a PR, or merging.** Run `gh pr list` and `git ls-remote` first — another open PR may already touch the same issue or files. Reconcile against it; don't re-derive "the only thing left" from a stale handoff. (A `PreToolUse` hook also surfaces same-issue open PRs at `gh pr create`/`merge` time, but treat that as a backstop, not a substitute for looking.)
146
225
  - **Truth is the CLI and running the code — not IDE/LSP "reminder" diagnostics.** Editor / `pyright`-in-worktree warnings go stale for an entire session and throw false positives (especially across multiple worktrees). Confirm with `ruff` / `pyright` / `pytest` from the terminal — or trust the worktree's own venv — never an IDE squiggle.
147
226
  - **Verify third-party runtime behavior empirically before wiring it in.** Don't assume how an external library, API, or browser actually behaves — exercise it once and observe, then build on the observed contract.
148
- - **If a claim can't be verified in the current environment, it's LIKELY — not CONFIRMED.** Keep the issue open, reference it with `Refs #N` (not `Closes #N`), and ship diagnostics rather than a blind fix. When you can't reproduce it, hand the fix to whoever can.
227
+ - **A claim you have not run is not a finding — it is a guess with formatting.** Confidence labels are not evidence: do not grade an unrun claim as "likely", "probably correct" or "low risk" and move on. Where a genuine external blocker stops the run (see the Iron Law), keep the issue open, reference it with `Refs #N` (not `Closes #N`), ship diagnostics rather than a blind fix, and hand it to whoever can reproduce it — naming what would settle it.
149
228
  - **This project reverse-engineers a blackbox.** gflow-cli doesn't own Google Flow — it drives real Flow through inspected HAR/DOM/browser-log behavior. Offline checks (types, lint, unit/BDD tests) verify *our* code does what we think it does; they cannot verify Flow still behaves the way we captured it. Every feature that touches a generation path is **live-verified**, not just offline-tested, before it's called done — see `/gflow:live-verify`.
150
229
 
151
230
  ## Standard Workflow Sequence
@@ -154,6 +233,7 @@ All AI agents and harnesses working on `gflow-cli` follow this standard 10-phase
154
233
 
155
234
  | Phase | Skill / Command | Purpose | Output Artifact |
156
235
  |---|---|---|---|
236
+ | 0. Spike | `/gflow:spike <question>` | Evidence from the live surface (DOM / network / HAR) whenever a claim of absence is in play | `scripts/dev/spike_*.py` + `docs/superpowers/spikes/<date>-<slug>.md` |
157
237
  | 1. Triage | `/gflow:issue-assessment <N>` | Read-only issue analysis & root cause hypothesis | `issue_assessment_<N>.md` |
158
238
  | 2. Pre-Implementation | `/gflow:predict <proposal>` | Adversarial audit (D14 YAGNI, security, risks) | GO / CAUTION / STOP verdict |
159
239
  | 3. BDD Scaffolding | `/gflow:scenario <feature>` | Edge-case explorer & BDD Gherkin spec | `Scenario:` blocks & test scaffold |
@@ -189,6 +269,7 @@ The `skills/` directory ships installable agent skill docs in plain Markdown wit
189
269
  | Skill | Path | When to load |
190
270
  |---|---|---|
191
271
  | `gflow-cli` | [`skills/gflow-cli/SKILL.md`](skills/gflow-cli/SKILL.md) | User wants to run any `gflow` command — auth, T2V, I2V, T2I, I2I, batch |
272
+ | `spike` | [`skills/spike/SKILL.md`](skills/spike/SKILL.md) | Before asserting any absence on a live Flow surface — the first layer of investigation |
192
273
  | `predict` | [`skills/predict/SKILL.md`](skills/predict/SKILL.md) | Pre-implementation adversarial analysis before any high-stakes change |
193
274
  | `scenario` | [`skills/scenario/SKILL.md`](skills/scenario/SKILL.md) | Edge-case explorer after a predict GO/CAUTION |
194
275
  | `plan` | [`skills/plan/SKILL.md`](skills/plan/SKILL.md) | Create a structured task-by-task implementation plan for a feature |
@@ -231,6 +312,35 @@ extension does not currently load plugins, so IDE-only users should include the
231
312
 
232
313
  The SkillOpt harness at `scripts/dev/skillopt/` measures how accurately each skill guides an agent. It drives any OpenAI-compatible endpoint — OpenAI, a gateway (OpenRouter, LiteLLM, freellmapi), a local model, or Google's compat endpoint — through the project's own `GFLOW_CLI_LLM_*` settings, the same ones the prompt tools use; there is no separate provider configuration. See [`scripts/dev/skillopt/README.md`](scripts/dev/skillopt/README.md).
233
314
 
315
+ ## Spiking a blackbox surface — the two modes
316
+
317
+ This project reverse-engineers Google Flow, so "go and look at the real thing" is a
318
+ first-class development activity, not a last resort. Two harnesses exist. **Use one of
319
+ them before writing a capture script from scratch.**
320
+
321
+ | Mode | Where | Driver | Who clicks | Use when |
322
+ |---|---|---|---|---|
323
+ | **In-process** | `scripts/dev/spike_*.py` | Playwright, via gflow's own transport | the script | you can already drive the surface, or you want to see exactly what gflow sees |
324
+ | **HAR + DOM** | [`scripts/dev/har-spike/`](scripts/dev/har-spike/README.md) | CDP-attached **real Chrome** through a pinned `agent-browser` | **a human, by hand** | the driver cannot reach the surface yet, or a capture is ambiguous and you need ground truth |
325
+
326
+ Start in-process; escalate to the HAR harness when the driver cannot get far enough to
327
+ observe anything. A hand-driven HAR is the tiebreaker. **The protocol is
328
+ [`skills/spike/SKILL.md`](skills/spike/SKILL.md) — load it before asserting any absence.**
329
+
330
+ Both write to **gitignored** output — `scripts/dev/_spike_out/` and
331
+ `scripts/dev/har-spike/artifacts/`. Captures carry Bearer tokens, cookies and prompts:
332
+ `*.har` is gitignored repo-wide, and a capture must never be committed or pasted into an
333
+ issue unredacted. Use `scripts/dev/har-spike/extract_har_summary.py` for the redacted
334
+ summary that IS shareable. Findings belong in `docs/superpowers/spikes/`; the evidence
335
+ that produced them stays local.
336
+
337
+ > **The harness is vendored in for discoverability, and that is the whole point.** It
338
+ > lived in a sibling directory outside git until 2026-09-06. Being outside the repo, no
339
+ > agent could find it, nothing pinned its `agent-browser` version, and its one test ran
340
+ > nowhere. A session that day wrote three capture scripts from scratch and only learned
341
+ > the harness existed because the user said so — after concluding, wrongly, that a
342
+ > working Flow feature was impossible. Keep it in-tree, keep its data disposable.
343
+
234
344
  ## Where to look next
235
345
 
236
346
  - **Architecture & target shape** → [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)
@@ -240,6 +350,7 @@ The SkillOpt harness at `scripts/dev/skillopt/` measures how accurately each ski
240
350
  - **Known issues** (read before touching auth / reCAPTCHA) → [KNOWN_ISSUES.md](KNOWN_ISSUES.md)
241
351
  - **Current task** → `/gflow:status` · **Create a feature plan** → `/gflow:plan <feature>` · **Full roadmap** → [PLAN.md](PLAN.md)
242
352
  - **Release protocol** → [RELEASE.md](RELEASE.md)
353
+ - **Spiking a live Flow surface** (HAR + DOM capture) → [scripts/dev/har-spike/README.md](scripts/dev/har-spike/README.md)
243
354
 
244
355
  ## Claude Code-specific notes
245
356