gflow-cli 0.74.0__tar.gz → 0.76.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.
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.agents/plugins/marketplace.json +1 -1
- gflow_cli-0.76.0/.claude-plugin/marketplace.json +17 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.codex-plugin/plugin.json +2 -2
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/dependabot.yml +20 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/workflows/ci.yml +3 -0
- gflow_cli-0.76.0/.github/workflows/mcp-registry.yml +70 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/AGENTS.md +5 -5
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/CHANGELOG.md +190 -1
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/CLAUDE.md +1 -1
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/DISCLAIMER.md +1 -1
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/KNOWN_ISSUES.md +36 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/PKG-INFO +42 -5
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/README.md +25 -2
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/RELEASE.md +3 -1
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/ROADMAP.md +2 -2
- gflow_cli-0.76.0/docker/Dockerfile +53 -0
- gflow_cli-0.76.0/docker/Dockerfile.test +17 -0
- gflow_cli-0.76.0/docker/README.md +215 -0
- gflow_cli-0.76.0/docker/docker-compose.yml +70 -0
- gflow_cli-0.76.0/docker/dockerignore.example +10 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/AGENT_UI_E2E.md +2 -2
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/CONFIGURATION.md +4 -4
- gflow_cli-0.76.0/docs/CONTAINER.md +142 -0
- {gflow_cli-0.74.0/website → gflow_cli-0.76.0}/docs/DEBUGGING.md +31 -12
- gflow_cli-0.76.0/docs/DISTRIBUTION.md +431 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/INDEX.md +5 -1
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_data_layer.md +2 -2
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_image_batch.md +2 -2
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.52.0.md +3 -3
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.54.0.md +2 -2
- gflow_cli-0.76.0/docs/LIVE_VERIFICATION_v0.75.0.md +185 -0
- gflow_cli-0.76.0/docs/LIVE_VERIFICATION_v0.76.0.md +129 -0
- gflow_cli-0.76.0/docs/MARKETPLACES.md +135 -0
- {gflow_cli-0.74.0/website → gflow_cli-0.76.0}/docs/MCP.md +58 -3
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/PROJECT_STATUS.md +92 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/USAGE.md +7 -2
- {gflow_cli-0.74.0/website → gflow_cli-0.76.0}/docs/USER_GUIDE.md +8 -1
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/medium_tutorial.md +1 -1
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/ui-selector-drift-error-exit-23.md +46 -0
- gflow_cli-0.76.0/docs/superpowers/plans/2026-09-14-community-feedback-uplift/PLAN.md +380 -0
- gflow_cli-0.76.0/docs/superpowers/spikes/2026-09-14-credits-on-migrated-host.md +107 -0
- gflow_cli-0.76.0/docs/superpowers/spikes/2026-09-15-container-transport-viability.md +129 -0
- gflow_cli-0.76.0/docs/superpowers/spikes/2026-09-15-unentitled-account-signal.md +158 -0
- gflow_cli-0.76.0/glama.json +17 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/index.html +5 -5
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/llms.txt +1 -1
- gflow_cli-0.76.0/plugins/README.md +44 -0
- gflow_cli-0.76.0/plugins/gflow/.claude-plugin/plugin.json +30 -0
- gflow_cli-0.76.0/plugins/gflow/.mcp.json +8 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0/plugins/gflow}/skills/gflow-cli/SKILL.md +2 -2
- gflow_cli-0.76.0/plugins/gflow/skills/video-production/SKILL.md +392 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/pyproject.toml +54 -4
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/ci/check_doc_links.py +11 -1
- gflow_cli-0.76.0/scripts/ci/check_fork_pr_ci.py +110 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/ci/check_repo_hygiene.py +16 -2
- gflow_cli-0.76.0/scripts/ci/generate_plugin_skills.py +164 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/ci/generate_website_docs.py +4 -1
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/skillopt/harness.py +1 -1
- gflow_cli-0.76.0/scripts/dev/spike_credits_migrated_surface.py +338 -0
- gflow_cli-0.76.0/scripts/dev/spike_flow_unavailable_signal.py +208 -0
- gflow_cli-0.76.0/server.json +42 -0
- gflow_cli-0.76.0/skills/gflow-cli/SKILL.md +288 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/pr-council-review/SKILL.md +11 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/release/SKILL.md +3 -3
- gflow_cli-0.76.0/skills/video-production/clip_qa.py +321 -0
- gflow_cli-0.76.0/skills/video-production/composition.md +171 -0
- gflow_cli-0.76.0/skills/video-production/consistency.md +167 -0
- gflow_cli-0.76.0/skills/video-production/failure-modes.md +76 -0
- gflow_cli-0.76.0/skills/video-production/tasks.json +498 -0
- gflow_cli-0.76.0/src/gflow_cli/__init__.py +3 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/_cli_helpers.py +10 -4
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/_common.py +78 -7
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/migrated_composer.py +1 -1
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/ui_automation.py +10 -2
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/ui_automation_video.py +7 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/cli.py +27 -15
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/cli_movie.py +3 -2
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/cli_run.py +2 -1
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/cli_scene.py +4 -1
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/cli_video.py +18 -6
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/errors.py +46 -6
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/mcp/server.py +131 -3
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/media.py +26 -23
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/ui/app.py +11 -1
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/worker/daemon.py +4 -1
- gflow_cli-0.76.0/tests/api/transports/test_flow_access_unavailable.py +242 -0
- gflow_cli-0.76.0/tests/cli/test_cli_auth_error_paths.py +141 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_scene.py +54 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_video_chain.py +242 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_error_handling.py +45 -2
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_helpers.py +43 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_landing_state_diagnosis_bdd.py +122 -1
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/landing_state_diagnosis.feature +28 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_http_transport.py +12 -2
- gflow_cli-0.76.0/tests/mcp/test_payload_key_round_trip.py +198 -0
- gflow_cli-0.76.0/tests/mcp/test_serve_auth.py +504 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_server.py +24 -12
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_setup.py +45 -0
- gflow_cli-0.76.0/tests/scripts/test_check_fork_pr_ci.py +94 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_check_repo_hygiene.py +24 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_codex_plugin.py +10 -3
- gflow_cli-0.76.0/tests/test_dockerfile_version_pin.py +86 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_errors.py +6 -2
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_errors_classification.py +6 -6
- gflow_cli-0.76.0/tests/test_glama_build_spec.py +142 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_media.py +28 -34
- gflow_cli-0.76.0/tests/test_plugin_manifests.py +263 -0
- gflow_cli-0.76.0/tests/test_rich_markup_safety.py +199 -0
- gflow_cli-0.76.0/tests/test_server_json.py +148 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/worker/test_daemon.py +78 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/uv.lock +3 -1
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/CONFIGURATION.md +4 -4
- {gflow_cli-0.74.0 → gflow_cli-0.76.0/website}/docs/DEBUGGING.md +31 -12
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/KNOWN_ISSUES.md +36 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0/website}/docs/MCP.md +58 -3
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/USAGE.md +7 -2
- {gflow_cli-0.74.0 → gflow_cli-0.76.0/website}/docs/USER_GUIDE.md +8 -1
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/index.md +2 -2
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/onboarding-mockup.html +2 -2
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/onboarding.md +1 -1
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/mkdocs.yml +2 -2
- gflow_cli-0.74.0/src/gflow_cli/__init__.py +0 -3
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/README.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/active.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/branch-review.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/changelog.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/check.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/doc-review.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/issue-assessment.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/issue-resolve.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/known-issues.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/live-verify.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/llm-council.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/next.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/plan.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/pr-council-review.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/predict.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/release.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/scenario.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/sonar.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/spike.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.claude/commands/gflow/status.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.env.template +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.gitattributes +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/CODEOWNERS +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/FUNDING.yml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/copilot-instructions.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/workflows/deps-watch.yml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/workflows/external-pr-triage.yml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/workflows/governance-advisory.yml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/workflows/governance-benchmark.yml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/workflows/labels.yml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/workflows/main-base-guard.yml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/workflows/pages.yml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/workflows/release.yml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/workflows/scorecard.yml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/workflows/selector-probe.yml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/workflows/sponsors.yml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.github/workflows/star-history-watch.yml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.gitignore +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.gitleaks.toml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.pre-commit-config.yaml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/.secrets.baseline +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/CONFIGURATION.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/CONTRIBUTING.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/LICENSE +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/conftest.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/deploy/logrotate-pr-triage +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docker-compose.yml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/ACCOUNT_SAFETY.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/AGENT_GUIDE.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/AGENT_UI_RECON.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/ARCHITECTURE.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/ASSET_TAGGING_RECON.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/AUTHENTICATION.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/CHARACTER.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/CHARACTER_RECON.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/DATA_LAYER.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/DEMOS.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/DEVELOPMENT.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/E2E_TESTING.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/EXTERNAL_STORAGE.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/GITHUB.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/GOVERNANCE_BENCHMARK.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/IMAGE_UPSCALE_RECON.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/INSTRUCTIONS.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_playwright_1.61.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_reference_entity_guard.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.10.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.11.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.12.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.13.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.16.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.17.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.18.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.19.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.20.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.20.1.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.21.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.22.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.23.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.24.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.25.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.26.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.27.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.27.1.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.28.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.29.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.30.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.31.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.32.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.32.1.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.33.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.34.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.35.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.36.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.37.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.38.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.38.1.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.39.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.40.0-production-readiness.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.40.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.41.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.42.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.43.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.44.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.45.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.46.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.46.1.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.47.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.48.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.49.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.50.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.51.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.55.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.56.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.57.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.57.1.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.58.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.59.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.60.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.61.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.62.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.62.1.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.63.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.64.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.65.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.66.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.66.1.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.66.2.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.66.3.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.67.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.68.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.69.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.7.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.70.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.71.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.71.1.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.72.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.73.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.73.1.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.73.2.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.74.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.8.1.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.9.0.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_v0.9.1.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/LIVE_VERIFICATION_video_download.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/MEDIA_LIBRARY.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/MOVIE.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/PROMPT_EXPANSION.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/REFERENCE_STRATEGIES.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/SECURITY.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/SPONSORS.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/TOOLS.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/assets/demo-split-pf.gif +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/assets/example-run.gif +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/assets/examples.webp +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/schemas/movie-handoff.schema.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/sonar-cleanup-tracker.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/README.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/agents-md-vs-llms-txt.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/background-e2e-pytest-pattern.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/bdd-stubs-mirror-runtime-signatures.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/credit-free-route-abort-verification.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/data-layer-overview.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/data-layer-test-pollution-trap.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/doc-examples-are-untested-fixtures.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/draft-pr-merge-trap.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/e2e-evidence-is-a-contributor-deliverable.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/exit-code-16-data-store.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/flow-capabilities-are-cohort-dependent.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/flow-credits-videos-only.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/flow-locale-leak-icon-ligatures.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/flow-recon-must-run-on-denon82-ffroliva-migrated.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/force-color-breaks-cli-tests.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/full-test-suite-ooms.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/git-add-all-sweeps-scratch-files.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/image-video-mode-switch-symmetry.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/ligature-carrier-differs-by-host.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/mcp-is-first-class-across-skill-chain.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/memory-is-working-dir-keyed.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/migrated-host-driver-wire-lessons.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/on-started-callback-recorder-safety.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/playwright-click-no-downstream-event-signature.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/pr-council-review-stale-tree-reads.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/pr-hygiene-revert-and-multi-commit.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/pr-must-verify-on-affected-surface.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/prose-conflicts-hide-in-disjoint-files.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/pypi-readme-staleness-fix.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/pypi-rejected-filename-reusable.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/readme-hybrid-router-pattern.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/real-browser-auth-mandatory.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/release-back-merge-gap-recovery.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/release-signing.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/release-spec-plan-memory-consolidation.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/rest-transports-drop-ui-fields.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/ruff-format-scope-is-src-tests.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/sonarcloud-hotspot-review-workflow.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/sonarcloud-new-code-gotchas.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/sonarcloud-pr-issues-scope-s7497.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/sonarcloud-setup.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/stale-test-discovery.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/structlog-cache-logger-off-for-tests.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/verification-ledger-5-layer.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/video-model-capability-matrix.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/wheel-build-sanity-gate.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/windows-dev-quirks.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/memory/windows-running-launcher-blocks-uv-upgrade.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-06-12-issue-174-library-ui-attach/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-06-22-mcp-server/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-06-22-mcp-server/PREDICT.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-06-22-mcp-server/SCENARIO.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PREDICT.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/SCENARIO.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-06-24-gflow-studio-scaffold/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-06-24-rest-api-layer/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-06-26-mcp-e2e-test/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-07-08-pr-triage-autopilot/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-07-09-camoufox-adoption/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-07-14-storyboarding-and-visual-curation/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-07-18-asset-tagging/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-07-19-live-verify/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-07-19-production-readiness-browser-lifecycle.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-07-19-production-readiness-driver-cdp-verification.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-07-19-production-readiness-public-truth.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-07-19-production-readiness-queue-safety.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-07-26-character-prompt-polishing/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-07-26-project-name-management/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-07-26-self-documenting-errors/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-07-27-overlay-banner-dismissal/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-07-27-tier-aware-credit-confirmations/SCENARIO.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-04-mcp-tasks/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-04-output-hardening/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-05-issue-317-intra-batch-references/SCENARIO.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-05-issue-402-entity-provenance/SCENARIO.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-05-issue-451-duration-tab-drift/SCENARIO.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-06-driver-delay-jittering/SCENARIO.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-06-overlay-changelog-watermark/SCENARIO.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-06-ui-mode-policy/SCENARIO.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-14-video-ui-mode-policy/SCENARIO.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-21-selector-registry.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-08-25-workflow-hardening-gaps.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-09-01-video-extend/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/plans/2026-09-06-spike-tooling-reorg/PLAN.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/research/2026-06-27-tool-abstraction-evaluation.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/specs/2026-06-29-issue-assessment-workflow-design.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/specs/2026-07-04-pr-triage-autopilot-design.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/specs/2026-07-18-asset-tagging-design.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/specs/2026-07-19-live-verify-design.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/specs/2026-07-19-production-readiness-hardening-design.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/specs/2026-08-21-selector-registry-design.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/specs/2026-08-26-model-attribution-provenance.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/specs/2026-08-26-model-cost-quota-catalog.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/specs/2026-08-27-changelog-modal-precondition-design.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-07-09-camoufox-waf-403.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-07-12-ui-cohort-backend-config.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-07-17-production-readiness-assessment.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-08-01-mcp-2026-07-28-spec-impact.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-08-14-video-model-capability-matrix.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-08-15-picker-tile-alt-text.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-08-31-veo-extend-route-recon.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-04-migrated-host-handoff-mechanism.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-05-migrated-frames-attach.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-05-migrated-host-wire-protocol.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-05-migrated-model-menu-lower-priority.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-05-migrated-r2v-attach-surface.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-06-labs-vs-migrated-session-credential.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-06-migrated-character-surface-and-recaptcha.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-07-character-format-button-anchor.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-07-credit-shortfall-looks-like-selector-drift.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-07-format-click-is-not-a-format.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-07-ligature-carrier-and-name-drift.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-07-migrated-composer-has-an-image-mode.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-08-g12-blocks-webdriver-not-playwright.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-08-migrated-composer-agent-mode-hides-settings.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-08-migrated-image-submit-wire.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-08-migrated-queue-is-readable-on-zzl0ze.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-08-migrated-upload-fails-two-ways.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-10-about-redirect-stability.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-10-migrated-click-blocked.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-11-about-redirect-is-decided-client-side.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-11-about-redirect-is-stable-for-an-account.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-11-migrated-cookie-bar-blocks-the-composer.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-11-nano2-lite-capability.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-13-frames-picker-confirm.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-14-generation-wire-no-push-channel.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-14-two-domain-protocol-survey.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/docs/superpowers/spikes/2026-09-14-video-poll-is-a-fixed-client-timer.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/examples/README.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/examples/batch_from_config.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/examples/multi_prompt_t2i.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/examples/sample_config.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/examples/sample_prompts.txt +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/examples/single_image_t2i.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/examples/workflow_chain.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/mempalace.yaml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0/plugins/gflow}/skills/video-production/clip_qa.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0/plugins/gflow}/skills/video-production/composition.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0/plugins/gflow}/skills/video-production/consistency.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0/plugins/gflow}/skills/video-production/failure-modes.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0/plugins/gflow}/skills/video-production/tasks.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/samples/README.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/samples/captured/01_upload_image.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/samples/captured/02_batchAsyncGenerateVideoText.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/samples/captured/03_batchCheckAsyncVideoGenerationStatus.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/samples/captured/04_archive_workflow.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/samples/captured/05_createProject.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/samples/captured/06_batchGenerateImages.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/samples/captured/07_batchGenerateImages_seeded.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/samples/captured/08_batchAsyncGenerateVideoStartAndEndImage.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/samples/captured/09_batchAsyncGenerateVideoReferenceImages.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/samples/captured/10_batchCheckAsyncVideoGenerationStatus_successful.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/samples/captured/11_batchCheckAsyncVideoGenerationStatus_failed.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/samples/captured/12_create_scene.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/samples/captured/13_sceneWorkflows_update.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/samples/captured/14_get_scene_workflows.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/samples/captured/15_commit_flowWorkflow.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/canary/register_task.ps1 +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/canary/run_canary.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/ci/check_council_memory.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/ci/check_materiality.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/ci/check_release_artifacts.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/ci/check_test_count.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/ci/check_website_docs_pii.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/ci/update_sponsors.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/debug_editor.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/debug_gen_settings.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/debug_settings.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/_recording_client.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/_spike_common.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/acceptance/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/acceptance/bench.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/acceptance/domain.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/acceptance/judge.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/acceptance/settings.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/active_plan.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/analyze_agent_ui_capture.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_frames_mode_trigger_ligature.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_i2v_frame_slots_dom.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_i2v_intercept_submit.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_i2v_model_select_repro.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_i2v_post_bind_state.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_image_add_media_dom.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_locale_invariants.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_lower_priority_model_cost.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_migrated_attach_rpcs.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_migrated_mention_gestures.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_migrated_model_menu.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_migrated_r2v_production_submit.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_migrated_r2v_submit_payload.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_migrated_r2v_surface.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_migrated_upload_flow.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_project_listing.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_r2v_ingredient_lifecycle.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_sidebar_state_dom.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/capture_video_model_capability_matrix.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/cdp_drive_and_probe.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/character_create_spike.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/character_create_spike_v2.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/dump_character_selectors.js +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/har-spike/README.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/har-spike/capture-agent-ui.ps1 +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/har-spike/capture-media-scrape.ps1 +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/har-spike/extract_har_summary.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/har-spike/launch-flow-chrome.ps1 +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/har-spike/probe-agent-mode.ps1 +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/har-spike/probe_agent_mode.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/har-spike/run-cdp-smoke.ps1 +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/har-spike/start-background-capture.ps1 +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/har-spike/start-har-capture.ps1 +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/har-spike/stop-background-capture.ps1 +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/har-spike/stop-har-capture.ps1 +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/incident_bundle_quality.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/live_verify_mcp_tasks.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/live_verify_policy_400_v060.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/live_verify_video_model_select.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/make_project.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/materiality_backtest.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/measure_html_lang_settle.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/measure_locale_probe.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/measure_migrated_host_flip.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/patch_character.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/skillopt/README.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/skillopt/tasks.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/sonar-local-scan.sh +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/sonar-pre-push-gate.sh +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_about_redirect_cause.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_about_redirect_stability.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_cdp_har_without_node.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_changelog_capture.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_char_editor_dom.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_char_gen_capture.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_character_editor_ready_gate.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_character_prompt_format.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_entity_submit_rpcs.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_extend_model_recon.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_extend_ourstack_verify.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_extend_route_capture.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_extend_submit_capture.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_extend_ui_recon.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_format_prompt_effect.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_frames_picker_confirm.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_generation_wire_survey.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_host_lane.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_image_model_attribution.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_image_upscale_capture.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_image_upscale_drive.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_image_upscale_recaptcha_action.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_image_upscale_rest_probe.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_incident_live.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_issue170_picker_locale_recon.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_issue174_library_ui_recon.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_issue313_agent_mode_controls.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_issue314_picker_filename_search.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_issue404_count_tabs_recon.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_ligature_carrier_sweep.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_locale_poison.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_body_reference_chip.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_character_body_controls.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_character_editor_anchor.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_character_ogiz0b_schema.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_character_submit_wire.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_character_surface.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_click_blocked.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_composer_arms.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_composer_mode_axis.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_cookie_bar.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_duration_by_model.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_editor_dom_inventory.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_entity_submit.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_frames_attach.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_host_trigger.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_image_capability.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_image_submit.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_picker_option_kind.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_queue_read.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_recaptcha_mint.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_submit_anchor.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_submit_capture.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_upload_wire.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migrated_vs_labs_provenance.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_migration_flag_bootstrap.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_mode_roundtrip.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_mode_switch_agentic_to_classic.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_model_inventory.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_movie_attach_payload.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_movie_entity_recon.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_movie_gen_capture.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_movie_picker_select.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_movie_voice_list.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_nano2_lite_capability.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_omni_flash_i2v_ui_recon.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_patch_entity.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_patchright.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_playwright_chrome_login.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_project_media_status.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_trpc_origin_referer_401.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_two_domain_protocol_survey.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/spike_video_tab_dom.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/verify_lang_settle_fix.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/verify_language_agnostic.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/verify_locale_navigation_race.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/dev/verify_model_attribution.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/diag/README.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/diag/capture_flow_traffic.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/diag/diag_aisandbox_bearer.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/diag/memory_profile.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/diag/recaptcha_mint.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/diag/spike_387_openai_compat.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/e2e/agentic_image_e2e.ps1 +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/e2e/capture_agent_toggle.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/probe/run_probe.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/probe/spike_auth_matrix.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/record_demo.ps1 +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/smoke_image.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/smoke_video_editor.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/smoke_worker_style.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/spike_waf_camoufox.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/scripts/verify_chrome_auth_viability.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/README.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/changelog/SKILL.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/check/SKILL.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/doc-review/SKILL.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/issue-assessment/SKILL.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/issue-resolve/SKILL.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/known-issues/SKILL.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/live-verify/SKILL.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/llm-council/SKILL.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/plan/SKILL.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/predict/SKILL.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/scenario/SKILL.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/sonar/SKILL.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/spike/SKILL.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/status/SKILL.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/skills/video-production/SKILL.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/sonar-project.properties +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/__main__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/_engine.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/_retry.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/_sapisidhash.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/character.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/client.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/credits.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/dto.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/extend_chain.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/image.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/image_upscale.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/recaptcha.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/routes.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/scene.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/_fingerprint.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/base.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/batchexecute.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/drivers/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/drivers/agentic.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/drivers/base.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/drivers/classic.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/drivers/factory.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/experimental/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/experimental/bearer.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/experimental/evaluate_fetch.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/experimental/sapisidhash.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/transports/mode_control.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/video.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/api/video_extend.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/auth/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/auth/base.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/auth/cookies.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/auth/factory.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/auth/internal_chromium.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/auth/real_chrome.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/auth/strategies.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/auth/verification.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/browser_manager.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/chain.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/chain_manifest.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/cli_character.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/cli_credits.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/cli_data.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/cli_doctor.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/cli_image.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/cli_instructions.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/cli_models.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/cli_project.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/cli_tools.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/cli_update.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/composition.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/config.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/chain_repo.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/migrations/0001_initial.sql +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/migrations/0002_add_cloud_storage.sql +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/migrations/0003_add_scene_tables.sql +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/migrations/0004_add_scene_output_path.sql +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/migrations/0005_add_chain_links.sql +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/migrations/0006_add_operations_metadata.sql +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/migrations/0007_queue.sql +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/migrations/0008_add_operation_expanded_prompt.sql +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/migrations/0009_queue_claims.sql +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/migrations/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/models.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/queries.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/recorder.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/redaction.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/repository.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/data/store.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/diagnostics.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/exceptions.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/file_integrity.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/flow_selectors/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/flow_selectors/grading.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/flow_selectors/model.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/flow_selectors/registry.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/image_batch.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/json_output.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/mcp/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/mcp/prompts.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/mcp/resources.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/mcp/setup.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/mcp/tasks_extension.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/mcp/tools.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/movie_manifest.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/observability.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/paths.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/profile_lease.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/profile_store.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/redaction.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/services/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/services/catalog_sync.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/services/character_create.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/services/credits.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/services/doctor.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/services/mentions.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/storage.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/tools/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/tools/banned.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/tools/builtin/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/tools/builtin/creative-director.toml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/tools/builtin/reverse-engineer.toml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/tools/builtin/storyboard.toml +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/tools/expander.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/tools/invocation.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/tools/loader.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/tools/registry.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/tools/runtime.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/tools/spec.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/ui/server.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/update_check.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/winsec.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/worker/codec.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/src/gflow_cli/worker/queue.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tasks/lessons.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/test_assets/sample_batch.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/test_assets/sample_batch.tsv +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/test_assets/sample_batch_invalid.tsv +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/fixtures/character_gen_response.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/fixtures/patch_entity_response.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/fixtures/project_initial_data_extend_models.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_aisandbox_auth_error.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_aisandbox_auth_headers.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_bearer_redaction.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_bootstrap_chooser.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_character.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_character_readback_fallback.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_client.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_client_character.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_client_delete_characters.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_client_errors.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_client_extend.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_client_generate_character.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_client_image.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_client_incidents.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_client_launch_kwargs.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_client_locale_cache.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_client_migrated_mint.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_client_patch_entity.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_client_scene.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_client_upscale.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_concurrency.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_credits.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_credits_http.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_dto.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_engine.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_extend_chain.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_image.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_image_dto.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_image_upscale.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_post_json_aisandbox_auth.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_recaptcha.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_retry.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_routes.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_routes_character.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_routes_locale.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_routes_scene.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_sapisidhash_helper.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_scene_models.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_video.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_video_extend.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_video_request.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/test_video_status_poll.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/conftest.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/drivers/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/drivers/test_agentic.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/drivers/test_classic.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/drivers/test_factory.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/drivers/test_ui_mode.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_agent_only_composer.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_agentic_cohort_detection.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_base.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_batchexecute.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_bearer.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_character_model_picker.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_click_attribution.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_common.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_evaluate_fetch.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_factory.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_fingerprint.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_ligature_carrier.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_locale_navigation.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_migrated_composer.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_migrated_dispatch.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_migrated_host_gate.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_migrated_images.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_migrated_r2v.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_migrated_route.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_mode_control.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_model_selection_loud.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_navigation_settled.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_new_project_cta_migrated.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_overlay_precondition.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_policy_400.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_sapisidhash.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_selector_symmetry.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_transport_timeout.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_ui_automation.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_ui_automation_batch.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_ui_automation_image_mode.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_ui_automation_video.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_ui_character_editor.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/api/transports/test_video_model_selection_loud.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/auth/strategies/test_factory.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/auth/strategies/test_strategies.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/auth/test_account_autoselect.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/auth/test_cookies.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/auth/test_real_chrome.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/auth/test_verification.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/auth/test_windows_acl.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_auth_status.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_auth_list.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_character.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_character_create.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_credits.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_data.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_data_errors.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_data_errors_retention.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_data_sync.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_doctor.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_image.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_image_seed_removed.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_image_selector_drift.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_image_upscale.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_image_uuid_ref_enrichment.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_instructions.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_models.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_movie.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_run.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_tools.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_video.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_cli_video_extend.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_failure_funnel.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_incident_output.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_movie_manifest.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_movie_manifest_style_variants.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_predictable_output.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_run_with_handlers_context_leak.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_run_with_handlers_interrupt.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_settings_validation.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/cli/test_t2i_multi_prompt.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/composition/test_character.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/composition/test_compose_prompt.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/composition/test_handoff.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/composition/test_style_variants.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/composition/test_style_variants_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/conftest.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/data/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/data/test_chain_repo.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/data/test_failure_recording.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/data/test_find_incomplete_character.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/data/test_models.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/data/test_null_columns_stay_null.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/data/test_packaging.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/data/test_recorder.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/data/test_recorder_character.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/data/test_redaction.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/data/test_repository.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/data/test_scene_persistence.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/data/test_settings_and_errors.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/data/test_store.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/data/test_store_migrations.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/dev/test_recording_client.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/conftest.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_account_chooser_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_agentic_count_enforcement_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_aisandbox_auth_live.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_asset_tagging_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_auth_verification_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_cancellation_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_chain_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_character_create_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_character_mcp_parity_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_classic_count_setter_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_click_attribution_bdd.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_crash_recovery_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_credits_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_credits_mcp_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_daemon_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_data_layer_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_data_sync_names_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_e2e_env_isolation.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_entity_provenance_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_entity_smuggling_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_i2v_flags_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_image_batch_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_image_i2i_ref_cap_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_image_uuid_ref_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_incident_quality_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_insufficient_credits_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_json_output_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_live_agentic_instructions.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_locale_selectors_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_migrated_host_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_migrated_i2v_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_project_naming_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_refresh_on_miss_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_scene_compose_live.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_sidebar_recovery_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_tools_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_transports_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_video_r2v_ref_cap_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_video_r2v_uuid_name_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/e2e/test_video_t2v_e2e.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/asset_tagging.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/auth.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/auth_login.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/character_create.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/character_read.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/click_attribution.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/conftest.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/credits.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/duration_tab_drift.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/entity_provenance.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/image.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/image_batch_references.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/image_upscale.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/incident_diagnostics.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/instructions.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/latched_locale_recovery.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/locale_picker_include.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/mcp_tasks.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/media_picker_tiers.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/migrated_driver.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/migrated_host_gate.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/migrated_host_images.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/migrated_i2v.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/output_hardening.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_asset_tagging_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_auth_login_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_auth_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_character_create_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_character_read_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_credits_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_e2e_binding_guard.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_image_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_image_upscale_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_incident_diagnostics_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_instructions_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_locale_picker_include_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_mcp_tasks_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_media_picker_tiers_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_migrated_driver_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_migrated_host_gate_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_migrated_host_images_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_migrated_i2v_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_output_hardening_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_step_collision_guard.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_video_agent_ui_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/test_video_chain_steps.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/video_agent_ui.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/features/video_chain.feature +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/fixtures/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/fixtures/changelog_modal_page.html +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/fixtures/doctor_env.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/fixtures/flow_model_inventory.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/fixtures/flow_project_listing_media.json +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/fixtures/listing_payload.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/fixtures/seeded_catalog.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/flow_selectors/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/flow_selectors/test_grading.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/flow_selectors/test_model.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/flow_selectors/test_model_governance.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/flow_selectors/test_registry.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/flow_selectors/test_report.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/image_batch/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/image_batch/test_image_manifest.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/image_batch/test_jitter_config.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/image_batch/test_observability_events.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/integration/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/integration/conftest.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/integration/constants.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/integration/test_expander_gateway.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/integration/test_storage_gcs.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/integration/test_storage_s3.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/conftest.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_auth_status_tool.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_character_tools.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_cli_parity.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_credits_tool.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_error_funnel.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_known_issues_resource.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_migrated_i2v_parity.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_no_spend.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_rate_limit_envelope.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_reference_entity_round_trip.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_resources.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_stdio_transport.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_tasks_extension.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_tools_helpers.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_tools_instructions.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/mcp/test_tools_wired.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_analyze_agent_ui_capture.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_canary_classify.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_canary_reexec.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_capture_locale_invariants.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_capture_video_model_capability_matrix.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_check_council_memory.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_check_materiality.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_check_release_artifacts.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_check_test_count.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_check_website_docs_pii.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_extract_har_summary.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_frame_acceptance.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_generate_website_docs.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_incident_bundle_quality.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_materiality_backtest.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_skillopt_scoring.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_spike_page_pool.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_spike_profile_lease.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_update_sponsors.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/scripts/test_workflow_hardening.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/services/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/services/test_catalog_sync.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/services/test_character_create_redaction.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/services/test_character_create_saga.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/services/test_character_gen_no_direct_post.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/services/test_credits.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/services/test_doctor.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/services/test_media_attribution.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/services/test_mentions_observability.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/services/test_mentions_parse.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/services/test_mentions_resolve.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/services/test_resolve_and_apply.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/smoke/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/smoke/test_profile_account_smoke.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/smoke/test_real_flow.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_auth.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_browser_manager.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_chain.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_chain_manifest.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_cli_data.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_cli_project.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_cli_update.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_config.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_conftest_isolation.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_data_queries.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_diagnostics_bundle.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_diagnostics_events.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_diagnostics_journal.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_diagnostics_recorder.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_diagnostics_retention.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_diagnostics_sanitize.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_documentation_gate.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_duration_tab_drift.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_entity_provenance.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_image_batch_references.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_incident_generation_requests.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_json_output.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_marker_registry.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_observability.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_overlay_banner_dismissal.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_paths.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_playwright_pin.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_profile_lease.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_profile_lease_subprocess.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_profile_store.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_profile_store_locale.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_project_list_urls.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_self_documenting_errors.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_smoke.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/test_update_check.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/tools/__init__.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/tools/test_banned.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/tools/test_expander.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/tools/test_invocation.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/tools/test_loader.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/tools/test_registry.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/tools/test_runtime.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/tools/test_spec.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/ui/test_app.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/worker/test_codec.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/worker/test_mcp_daemon_race.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/worker/test_queue.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/worker/test_queue_multiprocess.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/tests/worker/test_queue_reconciliation.py +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/ACCOUNT_SAFETY.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/ARCHITECTURE.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/AUTHENTICATION.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/CHARACTER.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/DATA_LAYER.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/DEVELOPMENT.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/E2E_TESTING.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/EXTERNAL_STORAGE.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/INSTRUCTIONS.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/MEDIA_LIBRARY.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/MOVIE.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/PROMPT_EXPANSION.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/SECURITY.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/SPONSORS.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/TOOLS.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/agents.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/installation.md +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/docs/stylesheets/extra.css +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/requirements.in +0 -0
- {gflow_cli-0.74.0 → gflow_cli-0.76.0}/website/requirements.txt +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "gflow-cli",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "Flavio Oliva",
|
|
5
|
+
"url": "https://github.com/ffroliva"
|
|
6
|
+
},
|
|
7
|
+
"description": "Drive Google Flow (Veo video, Imagen images) from Claude Code.",
|
|
8
|
+
"plugins": [
|
|
9
|
+
{
|
|
10
|
+
"name": "gflow",
|
|
11
|
+
"source": "./plugins/gflow",
|
|
12
|
+
"category": "Developer Tools",
|
|
13
|
+
"tags": ["video", "image", "google-flow", "veo", "imagen", "mcp"],
|
|
14
|
+
"defaultEnabled": false
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gflow",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.76.0",
|
|
4
4
|
"description": "Reusable development and operations workflows for gflow-cli",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Flavio Oliva",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"codex",
|
|
15
15
|
"google-flow"
|
|
16
16
|
],
|
|
17
|
-
"skills": "./skills/",
|
|
17
|
+
"skills": "./plugins/gflow/skills/",
|
|
18
18
|
"interface": {
|
|
19
19
|
"displayName": "gflow-cli",
|
|
20
20
|
"shortDescription": "Develop, validate, review, and operate gflow-cli.",
|
|
@@ -88,6 +88,26 @@ updates:
|
|
|
88
88
|
- "version-update:semver-minor"
|
|
89
89
|
- "version-update:semver-patch"
|
|
90
90
|
|
|
91
|
+
# Docker — the base image in docker/Dockerfile (python:3.14-slim).
|
|
92
|
+
#
|
|
93
|
+
# This covers the FROM line and nothing else. Dependabot has no view into packages
|
|
94
|
+
# installed by a RUN, so `google-chrome-stable` is NOT tracked here: it is pulled
|
|
95
|
+
# unpinned from Google's apt repo, which keeps only the current build, and a rebuild
|
|
96
|
+
# is what picks up a newer Chrome. The gflow-cli version is pinned separately via
|
|
97
|
+
# `ARG GFLOW_VERSION` and gated by tests/test_dockerfile_version_pin.py, so between
|
|
98
|
+
# the three of them every input to the image has a named owner.
|
|
99
|
+
- package-ecosystem: "docker"
|
|
100
|
+
directory: "/docker"
|
|
101
|
+
schedule:
|
|
102
|
+
interval: "weekly"
|
|
103
|
+
day: "monday"
|
|
104
|
+
time: "08:00"
|
|
105
|
+
timezone: "Europe/Lisbon"
|
|
106
|
+
open-pull-requests-limit: 3
|
|
107
|
+
# Kept in sync with .github/workflows/labels.yml — see the note above.
|
|
108
|
+
labels:
|
|
109
|
+
- "dependencies"
|
|
110
|
+
|
|
91
111
|
# GitHub Actions
|
|
92
112
|
- package-ecosystem: "github-actions"
|
|
93
113
|
directory: "/"
|
|
@@ -199,6 +199,9 @@ jobs:
|
|
|
199
199
|
- name: Council memory (every cited slug resolves, every file is cited)
|
|
200
200
|
run: uv run python scripts/ci/check_council_memory.py
|
|
201
201
|
|
|
202
|
+
- name: Plugin skills in sync (curated payload, no maintainer-only skill shipped)
|
|
203
|
+
run: uv run python scripts/ci/generate_plugin_skills.py --check
|
|
204
|
+
|
|
202
205
|
- name: Lint
|
|
203
206
|
run: uv run ruff check src tests
|
|
204
207
|
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
name: MCP Registry
|
|
2
|
+
|
|
3
|
+
# Publishes server.json to the Official MCP Registry — the listing that feeds the
|
|
4
|
+
# downstream directories (PulseMCP ingests it; GitHub's MCP gallery is built on it).
|
|
5
|
+
#
|
|
6
|
+
# Ordering matters and is why this hangs off `release: published` rather than the
|
|
7
|
+
# tag push. `mcp-publisher` proves namespace ownership by reading the `mcp-name:`
|
|
8
|
+
# token out of the PUBLISHED PyPI README, and PyPI metadata is frozen per release —
|
|
9
|
+
# so the wheel has to be up first. `release.yml` publishes to PyPI and only then
|
|
10
|
+
# creates the GitHub Release, so by the time this fires the token is live.
|
|
11
|
+
#
|
|
12
|
+
# Auth is GitHub Actions OIDC. There is no PAT and no device-code flow: the runner
|
|
13
|
+
# exchanges its own short-lived identity token for registry credentials, which is
|
|
14
|
+
# why this needs `id-token: write` and nothing else.
|
|
15
|
+
|
|
16
|
+
on:
|
|
17
|
+
release:
|
|
18
|
+
types: [published]
|
|
19
|
+
# Manual re-run, e.g. a release whose registry publish failed after PyPI
|
|
20
|
+
# succeeded. `validate` runs first either way, so a bad server.json stops
|
|
21
|
+
# before anything is sent.
|
|
22
|
+
workflow_dispatch:
|
|
23
|
+
|
|
24
|
+
# Write scopes live at JOB level (Scorecard Token-Permissions: a workflow-level
|
|
25
|
+
# write grant reaches every job, current and future).
|
|
26
|
+
permissions:
|
|
27
|
+
contents: read
|
|
28
|
+
|
|
29
|
+
jobs:
|
|
30
|
+
publish:
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
permissions:
|
|
33
|
+
contents: read
|
|
34
|
+
id-token: write # OIDC exchange with registry.modelcontextprotocol.io
|
|
35
|
+
env:
|
|
36
|
+
# Pinned by version AND digest: this step runs in a job holding id-token
|
|
37
|
+
# write and publishes publicly under io.github.ffroliva, so a moved tag
|
|
38
|
+
# must not silently change the binary that does it.
|
|
39
|
+
MCP_PUBLISHER_VERSION: "1.8.1"
|
|
40
|
+
MCP_PUBLISHER_SHA256: "a06c9096dcb9727c13555b6be26c7effa707b01f06a4c561ba7a3635443cf2cc"
|
|
41
|
+
steps:
|
|
42
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
43
|
+
with:
|
|
44
|
+
persist-credentials: false
|
|
45
|
+
|
|
46
|
+
- name: Install mcp-publisher
|
|
47
|
+
env:
|
|
48
|
+
GH_TOKEN: ${{ github.token }}
|
|
49
|
+
run: |
|
|
50
|
+
set -euo pipefail
|
|
51
|
+
archive="${RUNNER_TEMP}/mcp-publisher_linux_amd64.tar.gz"
|
|
52
|
+
gh release download "v${MCP_PUBLISHER_VERSION}" \
|
|
53
|
+
--repo modelcontextprotocol/registry \
|
|
54
|
+
--pattern 'mcp-publisher_linux_amd64.tar.gz' \
|
|
55
|
+
--output "${archive}" --clobber
|
|
56
|
+
echo "${MCP_PUBLISHER_SHA256} ${archive}" | sha256sum -c -
|
|
57
|
+
tar -xzf "${archive}" -C "${RUNNER_TEMP}" mcp-publisher
|
|
58
|
+
"${RUNNER_TEMP}/mcp-publisher" --version
|
|
59
|
+
echo "${RUNNER_TEMP}" >> "${GITHUB_PATH}"
|
|
60
|
+
|
|
61
|
+
- name: Validate server.json
|
|
62
|
+
# Never `init` here: it only writes a TEMPLATE server.json, refuses when a
|
|
63
|
+
# real one exists, and exits 1 — which would abort the run before login.
|
|
64
|
+
run: mcp-publisher validate
|
|
65
|
+
|
|
66
|
+
- name: Authenticate with the registry (GitHub Actions OIDC)
|
|
67
|
+
run: mcp-publisher login github-oidc
|
|
68
|
+
|
|
69
|
+
- name: Publish
|
|
70
|
+
run: mcp-publisher publish
|
|
@@ -44,7 +44,7 @@ by construction, so Codex / Cursor / Aider / `agy` read exactly what Claude Code
|
|
|
44
44
|
|
|
45
45
|
## Project at a glance
|
|
46
46
|
|
|
47
|
-
-
|
|
47
|
+
- Python CLI and MCP server for [Google Flow](https://labs.google/fx/tools/flow) — drives Veo (image-to-video, text-to-video) and Imagen (text-to-image) generations from the terminal by reverse-engineering Flow's private REST API at `aisandbox-pa.googleapis.com` — and, for accounts Google has moved to `flow.google.com`, that frontend's `batchexecute` wire (text-to-video, image-to-video from a local `--initial-frame`, reference-to-video from local `--ref` files, and text-to-image/local-file image-to-image, today; `GFLOW_CLI_FLOW_HOST`).
|
|
48
48
|
- Python 3.11+ · `uv`-managed · `hatchling` builds · Playwright Chromium transport · `pyright` strict · `ruff` · `pytest`.
|
|
49
49
|
- Single-package modular monolith. Top-level modules under `src/gflow_cli/`: `api/`, `auth/`, `data/`, `mcp/`, `services/`, `tools/`, `ui/`, `worker/`, `browser_manager.py`, `cli.py`, `_cli_helpers.py`, `diagnostics.py`, `json_output.py`, `media.py`, `profile_lease.py`, `redaction.py`, `storage.py`, `winsec.py`, `cli_project.py`, `cli_character.py`, `cli_credits.py`, `cli_data.py`, `cli_image.py`, `cli_instructions.py`, `cli_models.py`, `cli_movie.py`, `cli_run.py`, `cli_scene.py`, `cli_tools.py`, `cli_video.py`, `chain.py`, `chain_manifest.py`, `cli_doctor.py`, `cli_update.py`, `composition.py`, `config.py`, `errors.py`, `file_integrity.py`, `flow_selectors/`, `update_check.py`, `exceptions.py`, `image_batch.py`, `movie_manifest.py`, `observability.py`, `paths.py`, `profile_store.py`.
|
|
50
50
|
- Command surface: `gflow auth`, `gflow credits` (user/list — read-only Veo balance), `gflow image` (t2i/i2i/batch/upload/upscale), `gflow video` (t2v/i2v/r2v/chain/extend — `extend` continues an existing clip past Flow's 8s ceiling, server-seeded from the source so the join is continuous; no `batch` subcommand; the nonfunctional stub was removed, loop `gflow video t2v`/`i2v` from the shell for multi-clip runs), `gflow character` (create/list/show/rm/voices — reusable project-scoped Flow Character entities), `gflow scene` (create/show — Add Clip / Scenes, with `create --output` for credit-free server-side extended video), `gflow instructions` (persistent Agent-Mode brief cards — add/list/enable/disable/rm/apply/toggle-mode, credits-free, `--project` required), `gflow movie` (run/template — multi-scene manifest pipeline), `gflow tools` (list/show/run — prompt-rewriting tools, also `--tool` on generation commands), `gflow data` (catalog queries), `gflow doctor` (read-only pre-flight diagnostic, exit 33 = findings present), `gflow update` (self-update through the installer that put it here — uv tool / pipx / pip; `--check` only reports; source installs refused, exit 11; deliberately no MCP twin), `gflow project`, `gflow models`, `gflow run`, `gflow mcp` (run/setup — stdio MCP server), and `gflow serve` (Streamable HTTP at `/mcp`; `--transport sse` is deprecated).
|
|
@@ -74,8 +74,8 @@ If you can help unblock a pure HTTP transport (especially for video generation,
|
|
|
74
74
|
|
|
75
75
|
Run these gates in order before every commit:
|
|
76
76
|
|
|
77
|
-
```
|
|
78
|
-
$env:PYTHONUTF8=1
|
|
77
|
+
```bash
|
|
78
|
+
export PYTHONUTF8=1 # Windows PowerShell: $env:PYTHONUTF8 = "1"
|
|
79
79
|
uv run python scripts/ci/check_repo_hygiene.py
|
|
80
80
|
uv run python scripts/ci/check_doc_links.py
|
|
81
81
|
uv run python scripts/ci/check_website_docs_pii.py
|
|
@@ -108,7 +108,7 @@ the five other mirror axes), which no command here can check and no CI gate can
|
|
|
108
108
|
|
|
109
109
|
- Type hints everywhere; `pyright` strict on `src/gflow_cli`.
|
|
110
110
|
- Structured logging only (`structlog`) — **never** raw `print()` or `import logging` in `src/`.
|
|
111
|
-
- Errors as RFC 9457 Problem Details with stable per-class exit codes (3–
|
|
111
|
+
- Errors as RFC 9457 Problem Details with stable per-class exit codes (3–39, 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`, 39 `FlowAccessUnavailableError`). 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.
|
|
112
112
|
- 100-char line length, `ruff` configured. Imports sorted by `ruff` (isort rules).
|
|
113
113
|
- **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.
|
|
114
114
|
- **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`.
|
|
@@ -339,7 +339,7 @@ content in a vendor directory.
|
|
|
339
339
|
**Codex CLI / desktop app:** install the repo's skills-only plugin from the repository root,
|
|
340
340
|
then start a new session:
|
|
341
341
|
|
|
342
|
-
```
|
|
342
|
+
```bash
|
|
343
343
|
codex plugin marketplace add .
|
|
344
344
|
codex plugin add gflow@gflow-cli
|
|
345
345
|
```
|
|
@@ -7,6 +7,193 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.76.0] — 2026-09-16
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **The containerised sign-in now works on Windows, and no longer points at a service that
|
|
15
|
+
does not exist.** `docker/docker-compose.yml` hard-coded the X11 socket at
|
|
16
|
+
`/tmp/.X11-unix` and told non-Linux users to "use the VNC service below instead" — there
|
|
17
|
+
is no VNC service; the file defines `login`, `gflow` and `serve`. On Windows 11 + WSL2 the
|
|
18
|
+
display is real but lives elsewhere: WSLg publishes a live `X0` socket at
|
|
19
|
+
`/mnt/wslg/.X11-unix` with `DISPLAY=:0`, while `/tmp/.X11-unix` inside that distro is an
|
|
20
|
+
empty directory, so the default mounted nothing and Chrome exited against a display that
|
|
21
|
+
was not there. The mount is now `${X11_SOCKET:-/tmp/.X11-unix}`, unchanged for Linux, and
|
|
22
|
+
`docker/README.md` documents the WSL invocation plus the two prerequisites that actually
|
|
23
|
+
bite (run it from inside WSL, and enable Docker's WSL integration for that distro).
|
|
24
|
+
- **The container image no longer silently installs a stale gflow.** `docker/Dockerfile`
|
|
25
|
+
hardcoded `pip install gflow-cli==0.75.0` with nothing tying it to `pyproject.toml`, so
|
|
26
|
+
the next release would have left the image on the old version while
|
|
27
|
+
`docker/README.md`'s verification table went on quoting the new one. The version is now
|
|
28
|
+
an `ARG` gated by `tests/test_dockerfile_version_pin.py`. That gate also asserts the
|
|
29
|
+
ARG's **position**: declared above the Chrome layer it would invalidate ~1.6 GB of apt
|
|
30
|
+
cache on every version bump, so the ordering is a cache contract, not style. The base
|
|
31
|
+
image is now tracked by Dependabot (`docker` ecosystem); Chrome stays unpinned, with the
|
|
32
|
+
reason and the refresh command written down rather than left implicit.
|
|
33
|
+
- **An account with no Flow access was told gflow's selectors had drifted, and asked to
|
|
34
|
+
file a frontend bug.** Google Flow needs an age-verified account in a supported region
|
|
35
|
+
on a Google AI Plus, Pro or Ultra plan (or a qualifying Workspace plan). An account
|
|
36
|
+
without one is served Flow's own "you don't have access" screen instead of the app, and
|
|
37
|
+
gflow had no route for that state, so the editor sweep reported the only thing it could
|
|
38
|
+
see: the settings trigger never appeared. Measured on a newly created free Google
|
|
39
|
+
account, 2026-09-15, as an **A/B through the same command** — the probe neutered, then
|
|
40
|
+
restored, on live Flow:
|
|
41
|
+
|
|
42
|
+
| | exit | class | what the user is told |
|
|
43
|
+
|---|---|---|---|
|
|
44
|
+
| before | 23 | `UiSelectorDriftError` | *"Google may have updated their frontend … file a bug at github.com/ffroliva/gflow-cli/issues"* — on `https://flow.google.com/unavailable`, after a 30 s wait, **with an incident bundle containing a screenshot of the account's own page** for the user to attach |
|
|
45
|
+
| after | 39 | `FlowAccessUnavailableError` | *"This Google account cannot reach Flow"*, naming the subscription and linking Google's eligibility page |
|
|
46
|
+
|
|
47
|
+
The guard goes in `raise_if_known_landing()`, already the single chokepoint for "we
|
|
48
|
+
landed somewhere unexpected" and shared by all three raise sites (the labs gallery
|
|
49
|
+
sweep, the labs prompt-box sweep, and the migrated composer's `ensure_editor`), so every
|
|
50
|
+
command that drives the Flow editor is covered by the one change. It now probes the DOM
|
|
51
|
+
before it reads the URL. Verified live at $0 on that account: `ui_driver.known_landing
|
|
52
|
+
kind=unavailable at=migrated.ensure_editor`, exit 39, nothing submitted.
|
|
53
|
+
|
|
54
|
+
Detection is by Angular component, not by path or status code, because the spike
|
|
55
|
+
([`2026-09-15-unentitled-account-signal`](docs/superpowers/spikes/2026-09-15-unentitled-account-signal.md))
|
|
56
|
+
pre-registered four candidate signals and refuted all four. There is no entitlement field
|
|
57
|
+
on the session wire; `flow.google.com/` answers **HTTP 200** and performs the hop
|
|
58
|
+
client-side, so there is no 3xx to key on; and the path is not stable — `/unavailable`
|
|
59
|
+
and `/u/8/unavailable` were both observed, the second carrying Google's account-index
|
|
60
|
+
segment, which gflow does not parse anywhere. What is stable is Flow's own
|
|
61
|
+
`<flow-pinhole-unavailable-screen>`, rendered inside `aisandbox-root`, and unlike the
|
|
62
|
+
screen's prose it is locale-invariant by construction (AGENTS.md Tier 1). The probe is
|
|
63
|
+
total: a page that cannot be queried, or a locator that raises, reports "not seen" rather
|
|
64
|
+
than displacing the caller's own diagnosis.
|
|
65
|
+
|
|
66
|
+
**What this does not fix, and why — measured, not assumed.** The same account run
|
|
67
|
+
*without* `--project` never reaches the editor at all: it takes the labs REST arm and
|
|
68
|
+
dies at `labs.google/fx/api/trpc/project.createProject` with **HTTP 401**, which is still
|
|
69
|
+
reported as `AuthExpiredError` (exit 3) telling the user to log in again. `gflow auth
|
|
70
|
+
login` (exit 8) and `gflow auth status` (exit 1) are wrong in the same way. All three read
|
|
71
|
+
an oracle that cannot answer the question: `labs.google/fx/api/auth/session` returns 200
|
|
72
|
+
with an empty `user` for an abandoned sign-in *and* for an account with no entitlement,
|
|
73
|
+
and a REST 401 looks identical to an expired session. The discriminator exists only in
|
|
74
|
+
the DOM, and on the login path Chrome has already closed by the time the verdict runs, so
|
|
75
|
+
there is no page left to ask. Routing those means a browser probe on the auth path — a
|
|
76
|
+
separate change, on a surface `AGENTS.md` gates behind its own spike. (`gflow credits
|
|
77
|
+
user` exit 3 on that account is [#795](https://github.com/ffroliva/gflow-cli/issues/795),
|
|
78
|
+
a different real bug. `gflow project list` returning `{"projects": [], "total": 0}` was
|
|
79
|
+
never wrong — it lists the local SQLite catalog and never contacts Flow.)
|
|
80
|
+
|
|
81
|
+
- **An MCP agent's `project_name` is finally used.** `gflow_generate_image` and
|
|
82
|
+
`gflow_generate_video` accept a `project_name` and document it as the title for a freshly
|
|
83
|
+
created Flow project, but the worker read a different key (`project_title`) that nothing in
|
|
84
|
+
the repository has ever written. Every supplied name was silently dropped and each new
|
|
85
|
+
project was created as the hardcoded fallback `gflow-cli images` instead. Dead since the
|
|
86
|
+
parameter shipped on 2026-07-26 — the daemon's read predated it by four days, and the
|
|
87
|
+
feature wired up a new key rather than the one already being read. The CLI was unaffected.
|
|
88
|
+
|
|
89
|
+
### Added
|
|
90
|
+
|
|
91
|
+
- **The Official MCP Registry listing now publishes itself.** A new `MCP Registry` workflow runs
|
|
92
|
+
on `release: published` — after `release.yml` has uploaded the wheel, which matters because
|
|
93
|
+
`mcp-publisher` proves namespace ownership by reading the `mcp-name:` token out of the
|
|
94
|
+
*published* PyPI README. It authenticates with **GitHub Actions OIDC**, so no personal access
|
|
95
|
+
token is created, stored or handed to the registry, and the `mcp-publisher` download is pinned
|
|
96
|
+
by version *and* sha256 since that job holds `id-token: write`. `workflow_dispatch` is there
|
|
97
|
+
for a re-run when a release's PyPI upload succeeded but the registry publish did not. Registry
|
|
98
|
+
listings feed the downstream directories: PulseMCP ingests it and GitHub's MCP gallery is built
|
|
99
|
+
on it.
|
|
100
|
+
- **A gate for the MCP→worker payload-key round trip (#628).** `tests/mcp/test_cli_parity.py`
|
|
101
|
+
checks parity at the command and option level; neither can see the queue payload, where a
|
|
102
|
+
key written under one name and read under another type-checks, lints, passes every test and
|
|
103
|
+
does nothing at runtime. The new `tests/mcp/test_payload_key_round_trip.py` extracts the keys
|
|
104
|
+
`mcp/tools.py` writes and the keys anything under `worker/` reads, and fails on any written
|
|
105
|
+
key the worker never reads. It found the `project_name` defect above on its first run. The
|
|
106
|
+
extractors carry their own tests against synthetic sources, so the gate is proven able to go
|
|
107
|
+
red rather than merely observed green (precedent: a dead `output` param the queue never read,
|
|
108
|
+
found by hand in a v0.48.0 pre-release audit, #495).
|
|
109
|
+
|
|
110
|
+
## [0.75.0] — 2026-09-15
|
|
111
|
+
|
|
112
|
+
### Added
|
|
113
|
+
|
|
114
|
+
- **Installable as a Claude Code plugin.** `/plugin marketplace add ffroliva/gflow-cli` then
|
|
115
|
+
`/plugin install gflow@gflow-cli` installs the `gflow-cli` and `video-production` skills and
|
|
116
|
+
registers the MCP server in one step. The plugin ships **disabled**: Claude Code starts a
|
|
117
|
+
plugin's MCP servers automatically on enable with no prompt of its own, and this one drives your
|
|
118
|
+
own Google account where video generation bills your credits, so enabling it is a deliberate act.
|
|
119
|
+
For a hard guarantee, register the server yourself with `gflow mcp run --no-spend`.
|
|
120
|
+
- **`docs/DISTRIBUTION.md`** — an operational catalog of every channel people install or discover
|
|
121
|
+
gflow-cli through: audience, how to submit, requirements, status and a last-verified date per
|
|
122
|
+
row. Every row was checked live. It also records the channels that listed us without being asked
|
|
123
|
+
(MCP Market, skills.sh with 21 installs, two auto-generated catalogs) and the ones we are not
|
|
124
|
+
eligible for, with the reason.
|
|
125
|
+
- **Listed on [cursor.directory](https://cursor.directory/plugins/gflow-cli)**, and submitted to
|
|
126
|
+
seven more channels: Glama, mcpservers.org, and PRs or issues on `punkpeye/awesome-mcp-servers`,
|
|
127
|
+
`ComposioHQ/awesome-claude-skills`, `hesreallyhim/awesome-claude-code`,
|
|
128
|
+
`travisvn/awesome-claude-skills` and `Arnon-hs/open-source`. `DISTRIBUTION.md` carries the
|
|
129
|
+
status and reference for each, and — equally deliberately — why four channels are closed to a
|
|
130
|
+
local-stdio server that spends the user's own credits, including a section on why there is no
|
|
131
|
+
hosted "connector" and what one would actually cost.
|
|
132
|
+
- **`server.json`** — metadata for the official MCP Registry, with `tests/test_server_json.py`
|
|
133
|
+
pinning version lockstep, the schema's 100-character description cap, the name pattern, the
|
|
134
|
+
`mcp-name:` ownership token in the README, and that the command it advertises really exists.
|
|
135
|
+
- **A `gflow-cli` console script.** `uvx gflow-cli mcp run` previously failed with uv's own
|
|
136
|
+
*"Use `uvx --from gflow-cli <EXECUTABLE-NAME>` instead"*, because the console scripts were named
|
|
137
|
+
`gflow` and `flow`. The MCP Registry builds exactly that `uvx <identifier>` command from the
|
|
138
|
+
PyPI identifier and has no field for a differing executable name, so a listing would have been
|
|
139
|
+
broken on arrival.
|
|
140
|
+
|
|
141
|
+
### Changed
|
|
142
|
+
|
|
143
|
+
- **PyPI metadata.** The summary described only image-to-video and never mentioned MCP; it now
|
|
144
|
+
says what the package is. Added `Documentation`, `Repository` and `Changelog` sidebar links,
|
|
145
|
+
ten trove classifiers (all checked against the official list) and MCP-related keywords.
|
|
146
|
+
- **Dropped "unofficial" as a label** from the PyPI summary, `README.md`, `index.html`, the docs
|
|
147
|
+
site, `llms.txt`, `ROADMAP.md`, `DISCLAIMER.md`, `AGENTS.md`, `CLAUDE.md`,
|
|
148
|
+
`skills/gflow-cli/SKILL.md` and `src/gflow_cli/__init__.py`. The substance is unchanged and
|
|
149
|
+
still prominent: the README warning block reads "alpha and reverse-engineered — not affiliated
|
|
150
|
+
with Google", and `DISCLAIMER.md` still opens "not affiliated with, endorsed by, sponsored by,
|
|
151
|
+
or otherwise connected to Google LLC" — only the word "unofficial" left its first sentence.
|
|
152
|
+
It was leading with a negative in the one line PyPI shows in search results.
|
|
153
|
+
|
|
154
|
+
### Fixed
|
|
155
|
+
|
|
156
|
+
- **The Codex and ChatGPT-desktop plugin manifests shipped every skill in `skills/`**, including
|
|
157
|
+
maintainer-only ones (`release`, `check`, `pr-council-review`, `sonar`, `doc-review`). All three
|
|
158
|
+
channels now point at the same curated two-skill payload under `plugins/gflow/`, generated from
|
|
159
|
+
`skills/` by `scripts/ci/generate_plugin_skills.py` with a `--check` drift gate in CI.
|
|
160
|
+
|
|
161
|
+
- **Remediation hints naming an extra rendered without the extra.** Rich reads `[chain]` in an
|
|
162
|
+
interpolated value as a style tag and silently drops it, so `pip install 'gflow-cli[chain]'`
|
|
163
|
+
printed as `pip install 'gflow-cli'` — advice that reinstalls what you already have. The same
|
|
164
|
+
applied to `gflow-cli[patchright]`. Only brackets whose first character is `[a-z#/@]` are
|
|
165
|
+
affected, which is exactly the shape of a package extra. Every site that renders error text
|
|
166
|
+
through Rich now escapes it, and `tests/test_rich_markup_safety.py` fails the build if a new one
|
|
167
|
+
appears. `--json` was never affected.
|
|
168
|
+
|
|
169
|
+
- **`gflow video chain` was unusable on a clean `gflow-cli[chain]` install (#813).** The extra
|
|
170
|
+
installed `av` but not Pillow, while `media.py` imports `PIL` at module level — so
|
|
171
|
+
`uvx --from 'gflow-cli[chain]==0.74.0' gflow video chain one.jsonl --dry-run` died on
|
|
172
|
+
`No module named 'PIL'`, surfaced as a generic exit `1` *"Unexpected error… file a bug"*,
|
|
173
|
+
immediately after the user installed the documented extra. `pillow>=12.3.0` now ships in the
|
|
174
|
+
`chain` extra alongside `av`.
|
|
175
|
+
- **A missing `av` used to fail only AFTER a paid clip.** `import av` sat inside
|
|
176
|
+
`media._decode_frame`, which runs between links — so the missing extra surfaced once link 0
|
|
177
|
+
had already been generated and billed. It is now a module-level import beside `PIL`, and the
|
|
178
|
+
import block at the top of `video chain` is guarded: either missing package is a typed
|
|
179
|
+
`FrameExtractionError` (exit `20`) raised *before* the manifest is read, before `--dry-run`
|
|
180
|
+
prints a plan, and before the cost prompt. Nothing is submitted and no browser is launched.
|
|
181
|
+
`FrameExtractionError`'s remediation now names the extra **and both** packages (`av`,
|
|
182
|
+
`pillow`); it previously said only "PyAV", which left a missing Pillow undiagnosable.
|
|
183
|
+
- **Error text containing `[...]` was silently truncated on the console.** `detail` and
|
|
184
|
+
`remediation_hint` were interpolated into Rich markup unescaped, so Rich read `[chain]` as an
|
|
185
|
+
unknown style tag and dropped it — turning every `install gflow-cli[chain]` hint into
|
|
186
|
+
`install gflow-cli`, advice that reinstalls what the user already has. Both error render
|
|
187
|
+
paths now escape. `--json` was never affected.
|
|
188
|
+
### Security
|
|
189
|
+
|
|
190
|
+
- **`gflow serve` now requires the configured daemon token on every HTTP request.**
|
|
191
|
+
`GFLOW_CLI_DAEMON_TOKEN` / `GFLOW_DAEMON_TOKEN` previously gated startup only. It is now verified
|
|
192
|
+
on every request, on both the Streamable HTTP and the deprecated SSE transport, with a
|
|
193
|
+
constant-time comparison; a missing, malformed or wrong token gets `401` plus a
|
|
194
|
+
`WWW-Authenticate: Bearer` header and never reaches a tool. Set a token and upgrade if you run
|
|
195
|
+
`gflow serve` on anything other than the default loopback bind.
|
|
196
|
+
|
|
10
197
|
## [0.74.0] — 2026-09-14
|
|
11
198
|
|
|
12
199
|
### Added
|
|
@@ -5014,7 +5201,9 @@ shell-script template that branches on these codes.
|
|
|
5014
5201
|
|
|
5015
5202
|
First skeleton. Not functional end-to-end yet.
|
|
5016
5203
|
|
|
5017
|
-
[Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.
|
|
5204
|
+
[Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.76.0...HEAD
|
|
5205
|
+
[0.76.0]: https://github.com/ffroliva/gflow-cli/compare/v0.75.0...v0.76.0
|
|
5206
|
+
[0.75.0]: https://github.com/ffroliva/gflow-cli/compare/v0.74.0...v0.75.0
|
|
5018
5207
|
[0.74.0]: https://github.com/ffroliva/gflow-cli/compare/v0.73.2...v0.74.0
|
|
5019
5208
|
[0.73.2]: https://github.com/ffroliva/gflow-cli/compare/v0.73.1...v0.73.2
|
|
5020
5209
|
[0.73.1]: https://github.com/ffroliva/gflow-cli/compare/v0.73.0...v0.73.1
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## What this project is
|
|
6
6
|
|
|
7
|
-
`gflow-cli` is
|
|
7
|
+
`gflow-cli` is a Python CLI that drives [Google Flow](https://labs.google/fx/tools/flow) (Veo image-to-video, Imagen text-to-image) from the terminal by reverse-engineering Flow's private REST API. See [README.md](README.md) for the user-facing overview.
|
|
8
8
|
|
|
9
9
|
## System rules — loaded, not requested
|
|
10
10
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Not affiliated with Google
|
|
4
4
|
|
|
5
|
-
`gflow-cli` is an **independent
|
|
5
|
+
`gflow-cli` is an **independent** project. It is **not affiliated with, endorsed by, sponsored by, or otherwise connected to Google LLC, Alphabet Inc., DeepMind, or any of their subsidiaries.** All trademarks (Google, Flow, Veo, Gemini, Imagen, AI Ultra, AI Pro) are the property of their respective owners. The use of these names here is purely descriptive — to identify the service this tool integrates with — and does not imply endorsement.
|
|
6
6
|
|
|
7
7
|
## Reverse-engineered surface
|
|
8
8
|
|
|
@@ -1203,6 +1203,42 @@ your prompts.
|
|
|
1203
1203
|
|
|
1204
1204
|
---
|
|
1205
1205
|
|
|
1206
|
+
### `gflow-cli[chain]` ≤ 0.74.0 does not install Pillow — `video chain` fails with exit 1
|
|
1207
|
+
|
|
1208
|
+
- **Status:** **Fixed in v0.75.0** · affects `gflow-cli` ≤ 0.74.0 · **Severity:** High (the command was unusable) · **Affects:** `gflow video chain` · **Tracked:** [#813](https://github.com/ffroliva/gflow-cli/issues/813)
|
|
1209
|
+
|
|
1210
|
+
Through 0.74.0 the `chain` extra declared `av` alone, but `gflow_cli/media.py`
|
|
1211
|
+
imports `PIL` at module level. So the documented install produced a CLI that
|
|
1212
|
+
could not run the command it was installed for:
|
|
1213
|
+
|
|
1214
|
+
```console
|
|
1215
|
+
$ uvx --isolated --from 'gflow-cli[chain]==0.74.0' gflow video chain one.jsonl --dry-run
|
|
1216
|
+
Unexpected error ... file a bug # exit 1; the real cause is No module named 'PIL'
|
|
1217
|
+
```
|
|
1218
|
+
|
|
1219
|
+
A missing **`av`** was worse than it looked: `import av` was deferred into the
|
|
1220
|
+
decode helper, which only runs *between* links — so it surfaced after link 0 had
|
|
1221
|
+
already been generated and **paid for**.
|
|
1222
|
+
|
|
1223
|
+
**Workaround on ≤ 0.74.0** — install Pillow alongside the extra:
|
|
1224
|
+
|
|
1225
|
+
```bash
|
|
1226
|
+
pip install 'gflow-cli[chain]' pillow
|
|
1227
|
+
# or: uv tool install 'gflow-cli[chain]' --with pillow
|
|
1228
|
+
```
|
|
1229
|
+
|
|
1230
|
+
**Fixed in v0.75.0:** `pillow` ships in the `chain` extra, `av` moved to
|
|
1231
|
+
a module-level import so both fail at the same point, and `video chain` now
|
|
1232
|
+
raises `FrameExtractionError` (**exit 20**) naming the extra and both packages —
|
|
1233
|
+
before the manifest is read, before `--dry-run` prints a plan, and before the
|
|
1234
|
+
cost prompt. Verified against a real wheel installed without extras: a
|
|
1235
|
+
**nonexistent** manifest still exits 20 on the dependency error rather than
|
|
1236
|
+
file-not-found, which is what shows the guard precedes the manifest read.
|
|
1237
|
+
The advice is also legible now — Rich used to eat `[chain]` out of it and print
|
|
1238
|
+
`pip install 'gflow-cli'`, i.e. reinstall what you already have.
|
|
1239
|
+
|
|
1240
|
+
---
|
|
1241
|
+
|
|
1206
1242
|
### `gflow video chain` outputs N clips, not one file — auto-concat is deferred
|
|
1207
1243
|
|
|
1208
1244
|
- **Status:** Open (by design) · **Severity:** Low · **Affects:** `gflow video chain` (v0.12.0)
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: gflow-cli
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.76.0
|
|
4
|
+
Summary: CLI and MCP server for Google Flow — drive Veo text-to-video, image-to-video and Imagen image generation from the terminal.
|
|
5
5
|
Project-URL: Homepage, https://github.com/ffroliva/gflow-cli
|
|
6
|
+
Project-URL: Documentation, https://ffroliva.github.io/gflow-cli/
|
|
7
|
+
Project-URL: Repository, https://github.com/ffroliva/gflow-cli
|
|
8
|
+
Project-URL: Changelog, https://github.com/ffroliva/gflow-cli/blob/main/CHANGELOG.md
|
|
6
9
|
Project-URL: Issues, https://github.com/ffroliva/gflow-cli/issues
|
|
7
10
|
Project-URL: Funding, https://github.com/sponsors/ffroliva
|
|
8
11
|
Author-email: Flavio Oliva <ffroliva@gmail.com>
|
|
@@ -28,15 +31,25 @@ License: MIT License
|
|
|
28
31
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
29
32
|
SOFTWARE.
|
|
30
33
|
License-File: LICENSE
|
|
31
|
-
Keywords: ai,cli,flow,google,veo,video
|
|
34
|
+
Keywords: ai,ai-video,cli,flow,generative-ai,google,google-flow,image-to-video,imagen,mcp,mcp-server,model-context-protocol,playwright,text-to-video,veo,video,video-generation
|
|
32
35
|
Classifier: Development Status :: 3 - Alpha
|
|
33
36
|
Classifier: Environment :: Console
|
|
37
|
+
Classifier: Framework :: AsyncIO
|
|
38
|
+
Classifier: Framework :: Pydantic :: 2
|
|
34
39
|
Classifier: Intended Audience :: Developers
|
|
40
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
35
41
|
Classifier: License :: OSI Approved :: MIT License
|
|
42
|
+
Classifier: Natural Language :: English
|
|
43
|
+
Classifier: Operating System :: OS Independent
|
|
44
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
36
45
|
Classifier: Programming Language :: Python :: 3.11
|
|
37
46
|
Classifier: Programming Language :: Python :: 3.12
|
|
38
47
|
Classifier: Programming Language :: Python :: 3.13
|
|
48
|
+
Classifier: Topic :: Multimedia :: Graphics
|
|
39
49
|
Classifier: Topic :: Multimedia :: Video
|
|
50
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
51
|
+
Classifier: Topic :: Utilities
|
|
52
|
+
Classifier: Typing :: Typed
|
|
40
53
|
Requires-Python: >=3.11
|
|
41
54
|
Requires-Dist: browser-cookie3>=0.20.1
|
|
42
55
|
Requires-Dist: click>=8.1.0
|
|
@@ -53,6 +66,7 @@ Requires-Dist: tenacity>=8.2
|
|
|
53
66
|
Requires-Dist: uvicorn[standard]>=0.34.0
|
|
54
67
|
Provides-Extra: chain
|
|
55
68
|
Requires-Dist: av>=12; extra == 'chain'
|
|
69
|
+
Requires-Dist: pillow>=12.3.0; extra == 'chain'
|
|
56
70
|
Provides-Extra: dev
|
|
57
71
|
Requires-Dist: av>=12; extra == 'dev'
|
|
58
72
|
Requires-Dist: numpy>=1.24; extra == 'dev'
|
|
@@ -70,9 +84,11 @@ Requires-Dist: s3fs>=2024.2.0; extra == 's3'
|
|
|
70
84
|
Requires-Dist: universal-pathlib>=0.2.5; extra == 's3'
|
|
71
85
|
Description-Content-Type: text/markdown
|
|
72
86
|
|
|
87
|
+
<!-- mcp-name: io.github.ffroliva/gflow-cli -->
|
|
88
|
+
|
|
73
89
|
# gflow-cli
|
|
74
90
|
|
|
75
|
-
>
|
|
91
|
+
> Python CLI and MCP server for Google Flow. Drive [Veo](https://labs.google/fx/tools/flow) (image-to-video, text-to-video) and Imagen (text-to-image) from your terminal: scripted, batched, pipeline-ready.
|
|
76
92
|
|
|
77
93
|
[](https://pypi.org/project/gflow-cli/)
|
|
78
94
|
[](https://github.com/ffroliva/gflow-cli/actions/workflows/ci.yml)
|
|
@@ -86,13 +102,14 @@ Description-Content-Type: text/markdown
|
|
|
86
102
|
[](https://sonarcloud.io/summary/new_code?id=ffroliva_gflow-cli)
|
|
87
103
|
[](https://sonarcloud.io/component_measures?id=ffroliva_gflow-cli&metric=coverage)
|
|
88
104
|
[](https://scorecard.dev/viewer/?uri=github.com/ffroliva/gflow-cli)
|
|
105
|
+
[](https://mcpservers.org/servers/ffroliva/gflow-cli)
|
|
89
106
|
|
|
90
107
|
<!-- Gold sponsors appear here: filled by scripts/ci/update_sponsors.py, empty until there is one. -->
|
|
91
108
|
<!-- sponsors-gold:start -->
|
|
92
109
|
|
|
93
110
|
<!-- sponsors-gold:end -->
|
|
94
111
|
|
|
95
|
-
> ⚠️ **Read this before you install.** gflow-cli is **
|
|
112
|
+
> ⚠️ **Read this before you install.** gflow-cli is **alpha and reverse-engineered — not affiliated with Google**. It drives a headed browser on *your own* Google Flow session, so treat it as your own account risk: automation is subject to Google's ToS, and endpoints or UI can change without notice. It works with **any Google account** that has Flow access, and every generation bills against your account's Flow credit allowance. Read the full [DISCLAIMER](DISCLAIMER.md).
|
|
96
113
|
>
|
|
97
114
|
> 🛡️ **"Will this get my account flagged?"** The honest, specific answer — what the tool does to stay unremarkable (headed real Chrome, randomised interaction timing, paced submissions), what it deliberately does **not** do (no proxies, no fingerprint spoofing, no pretending it isn't automation), what you can tune, and what we cannot promise — is in [docs/ACCOUNT_SAFETY.md](docs/ACCOUNT_SAFETY.md).
|
|
98
115
|
>
|
|
@@ -173,6 +190,7 @@ Reproduce the recording with [`scripts/record_demo.ps1`](scripts/record_demo.ps1
|
|
|
173
190
|
| 🎭 **Characters** | [Characters](docs/CHARACTER.md), reusable subjects (`gflow character`) |
|
|
174
191
|
| 🤖 **Agentic & automation** | [Instructions](docs/INSTRUCTIONS.md) (`gflow instructions`, persistent brief cards) · [Movie](docs/MOVIE.md) (`gflow movie`, multi-scene manifests) · [Tools](docs/TOOLS.md) (`--tool`, prompt rewriting) · [MCP server](docs/MCP.md) (`gflow mcp run` / `gflow serve`) |
|
|
175
192
|
| 🔐 **Auth & sessions** | [Authentication](docs/AUTHENTICATION.md) · [Known issues](KNOWN_ISSUES.md) |
|
|
193
|
+
| 📣 **Where to install from** | [Marketplaces](docs/MARKETPLACES.md) (every channel and what each actually delivers) · [Container](docs/CONTAINER.md) (why the image introspects but cannot generate) |
|
|
176
194
|
| 🏗️ **Internals** | [Architecture](docs/ARCHITECTURE.md) · [Security](docs/SECURITY.md) · [Debugging](docs/DEBUGGING.md) |
|
|
177
195
|
| 📦 **Releases** | [Changelog](CHANGELOG.md) · [Roadmap](ROADMAP.md) · [Release protocol](RELEASE.md) · [Project status](docs/PROJECT_STATUS.md) |
|
|
178
196
|
| 🤝 **Contributing** | [Contributing](CONTRIBUTING.md) · [Development](docs/DEVELOPMENT.md) · [GitHub workflow](docs/GITHUB.md) |
|
|
@@ -188,6 +206,25 @@ gflow-cli ships four agent entry points. Pick the one your tool reads first.
|
|
|
188
206
|
| [**llms.txt**](llms.txt) | LLM-readable summary (llmstxt.org format) | Paste into ChatGPT, Claude, or Gemini to onboard the model |
|
|
189
207
|
| [`skills/gflow-cli/SKILL.md`](skills/gflow-cli/SKILL.md) | Claude Code Skill | Symlink into `~/.claude/skills/` |
|
|
190
208
|
|
|
209
|
+
### Install the plugin (Claude Code)
|
|
210
|
+
|
|
211
|
+
One step, and you get the `gflow-cli` and `video-production` skills plus the MCP server:
|
|
212
|
+
|
|
213
|
+
```
|
|
214
|
+
/plugin marketplace add ffroliva/gflow-cli
|
|
215
|
+
/plugin install gflow@gflow-cli
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
The plugin ships **disabled**. Claude Code starts a plugin's MCP servers automatically once a
|
|
219
|
+
plugin is enabled, with no prompt of its own — and this server drives your own Google account,
|
|
220
|
+
where Veo video generation bills your credits. So installing it starts nothing, and enabling it
|
|
221
|
+
is a deliberate act. Images and composition are free; only video spends. For a hard guarantee,
|
|
222
|
+
register the server yourself with `gflow mcp run --no-spend`, which never registers the
|
|
223
|
+
credit-spending tools at all. See [docs/MCP.md](docs/MCP.md) for the details, including which
|
|
224
|
+
revision `/plugin marketplace add` gives you.
|
|
225
|
+
|
|
226
|
+
Codex users: `codex plugin marketplace add .` then `codex plugin add gflow@gflow-cli`.
|
|
227
|
+
|
|
191
228
|
Onboard any agent in one line. Paste this into your agent of choice:
|
|
192
229
|
|
|
193
230
|
> *"Read [AGENTS.md](https://github.com/ffroliva/gflow-cli/blob/main/AGENTS.md) and [docs/INDEX.md](https://github.com/ffroliva/gflow-cli/blob/main/docs/INDEX.md), then help me with my Flow batch."*
|