gflow-cli 0.34.0__tar.gz → 0.36.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.36.0/.claude/commands/gflow/changelog.md +9 -0
- gflow_cli-0.36.0/.claude/commands/gflow/check.md +9 -0
- gflow_cli-0.36.0/.claude/commands/gflow/doc-review.md +9 -0
- gflow_cli-0.36.0/.claude/commands/gflow/known-issues.md +9 -0
- gflow_cli-0.36.0/.claude/commands/gflow/llm-council.md +13 -0
- gflow_cli-0.36.0/.claude/commands/gflow/release.md +9 -0
- gflow_cli-0.36.0/.claude/commands/gflow/sonar.md +9 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.env.template +14 -0
- gflow_cli-0.36.0/.github/workflows/pages.yml +55 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.gitignore +3 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/AGENTS.md +14 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/CHANGELOG.md +34 -1
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/KNOWN_ISSUES.md +29 -1
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/PKG-INFO +2 -2
- gflow_cli-0.36.0/docs/CONFIGURATION.md +429 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/INDEX.md +2 -1
- gflow_cli-0.36.0/docs/LIVE_VERIFICATION_v0.35.0.md +45 -0
- gflow_cli-0.36.0/docs/LIVE_VERIFICATION_v0.36.0.md +46 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/PROJECT_STATUS.md +47 -2
- gflow_cli-0.36.0/docs/SECURITY.md +259 -0
- gflow_cli-0.36.0/docs/superpowers/plans/2026-07-14-storyboarding-and-visual-curation/PLAN.md +107 -0
- gflow_cli-0.36.0/index.html +306 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/pyproject.toml +4 -4
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/ci/check_materiality.py +16 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/skills/README.md +8 -0
- gflow_cli-0.34.0/.claude/commands/gflow/changelog.md → gflow_cli-0.36.0/skills/changelog/SKILL.md +5 -2
- gflow_cli-0.34.0/.claude/commands/gflow/check.md → gflow_cli-0.36.0/skills/check/SKILL.md +4 -1
- gflow_cli-0.34.0/.claude/commands/gflow/doc-review.md → gflow_cli-0.36.0/skills/doc-review/SKILL.md +4 -1
- gflow_cli-0.34.0/.claude/commands/gflow/known-issues.md → gflow_cli-0.36.0/skills/known-issues/SKILL.md +5 -2
- gflow_cli-0.36.0/skills/llm-council/SKILL.md +72 -0
- gflow_cli-0.34.0/.claude/commands/gflow/release.md → gflow_cli-0.36.0/skills/release/SKILL.md +7 -4
- gflow_cli-0.34.0/.claude/commands/gflow/sonar.md → gflow_cli-0.36.0/skills/sonar/SKILL.md +4 -1
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/__init__.py +1 -1
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/_cli_helpers.py +22 -7
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/client.py +24 -2
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/transports/ui_automation.py +41 -35
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/transports/ui_automation_video.py +91 -2
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/config.py +28 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/json_output.py +16 -11
- gflow_cli-0.36.0/src/gflow_cli/tools/builtin/reverse-engineer.toml +52 -0
- gflow_cli-0.36.0/src/gflow_cli/tools/builtin/storyboard.toml +44 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/tools/expander.py +84 -35
- gflow_cli-0.36.0/src/gflow_cli/tools/runtime.py +182 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_client_launch_kwargs.py +60 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/test_ui_automation.py +68 -1
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_error_handling.py +146 -0
- gflow_cli-0.36.0/tests/e2e/test_entity_smuggling_e2e.py +91 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/scripts/test_check_materiality.py +20 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_json_output.py +16 -2
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/tools/test_expander.py +89 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/tools/test_registry.py +1 -1
- gflow_cli-0.36.0/tests/tools/test_runtime.py +222 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/uv.lock +108 -110
- gflow_cli-0.36.0/website/docs/ARCHITECTURE.md +414 -0
- gflow_cli-0.36.0/website/docs/AUTHENTICATION.md +412 -0
- gflow_cli-0.36.0/website/docs/CHARACTER.md +506 -0
- gflow_cli-0.36.0/website/docs/DATA_LAYER.md +463 -0
- gflow_cli-0.36.0/website/docs/DEBUGGING.md +228 -0
- gflow_cli-0.36.0/website/docs/DEVELOPMENT.md +138 -0
- gflow_cli-0.36.0/website/docs/E2E_TESTING.md +272 -0
- gflow_cli-0.36.0/website/docs/EXTERNAL_STORAGE.md +140 -0
- gflow_cli-0.36.0/website/docs/INSTRUCTIONS.md +169 -0
- gflow_cli-0.36.0/website/docs/KNOWN_ISSUES.md +964 -0
- gflow_cli-0.36.0/website/docs/MCP.md +182 -0
- gflow_cli-0.36.0/website/docs/MOVIE.md +242 -0
- gflow_cli-0.36.0/website/docs/PROMPT_EXPANSION.md +247 -0
- gflow_cli-0.36.0/website/docs/TOOLS.md +301 -0
- gflow_cli-0.36.0/website/docs/USAGE.md +1386 -0
- gflow_cli-0.36.0/website/docs/USER_GUIDE.md +943 -0
- gflow_cli-0.36.0/website/docs/agents.md +43 -0
- gflow_cli-0.36.0/website/docs/index.md +49 -0
- gflow_cli-0.36.0/website/docs/installation.md +45 -0
- gflow_cli-0.36.0/website/docs/quickstart.md +63 -0
- gflow_cli-0.36.0/website/docs/stylesheets/extra.css +115 -0
- gflow_cli-0.36.0/website/mkdocs.yml +100 -0
- gflow_cli-0.34.0/src/gflow_cli/tools/runtime.py +0 -63
- gflow_cli-0.34.0/tests/tools/test_runtime.py +0 -64
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.claude/README.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.claude/commands/gflow/active.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.claude/commands/gflow/branch-review.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.claude/commands/gflow/issue-assessment.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.claude/commands/gflow/issue-resolve.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.claude/commands/gflow/next.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.claude/commands/gflow/plan.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.claude/commands/gflow/pr-council-review.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.claude/commands/gflow/predict.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.claude/commands/gflow/scenario.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.claude/commands/gflow/status.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.gitattributes +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.github/CODEOWNERS +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.github/copilot-instructions.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.github/dependabot.yml +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.github/workflows/ci.yml +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.github/workflows/external-pr-triage.yml +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.github/workflows/governance-advisory.yml +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.github/workflows/governance-benchmark.yml +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.github/workflows/main-base-guard.yml +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.github/workflows/release.yml +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.gitleaks.toml +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.pre-commit-config.yaml +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/.secrets.baseline +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/CLAUDE.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/CONFIGURATION.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/CONTRIBUTING.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/DISCLAIMER.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/GEMINI.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/LICENSE +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/PLAN.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/README.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/RELEASE.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/ROADMAP.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/conftest.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docker-compose.yml +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/AGENT_GUIDE.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/AGENT_UI_E2E.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/AGENT_UI_RECON.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/ARCHITECTURE.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/AUTHENTICATION.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/CHARACTER.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/CHARACTER_RECON.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/DATA_LAYER.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/DEBUGGING.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/DEMOS.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/DEVELOPMENT.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/E2E_TESTING.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/EXTERNAL_STORAGE.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/GITHUB.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/GOVERNANCE_BENCHMARK.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/IMAGE_UPSCALE_RECON.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/INSTRUCTIONS.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_data_layer.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_image_batch.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.10.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.11.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.12.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.13.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.16.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.17.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.18.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.19.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.20.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.20.1.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.21.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.22.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.23.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.24.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.25.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.26.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.27.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.27.1.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.28.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.29.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.30.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.31.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.32.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.32.1.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.33.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.34.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.7.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.8.1.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.9.0.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_v0.9.1.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/LIVE_VERIFICATION_video_download.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/MCP.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/MOVIE.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/PROMPT_EXPANSION.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/TOOLS.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/USAGE.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/USER_GUIDE.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/assets/demo-split-pf.gif +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/assets/example-run.gif +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/assets/examples.webp +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/medium_tutorial.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/schemas/movie-handoff.schema.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/sonar-cleanup-tracker.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/superpowers/plans/2026-06-12-issue-174-library-ui-attach/PLAN.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/superpowers/plans/2026-06-22-mcp-server/PLAN.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/superpowers/plans/2026-06-22-mcp-server/PREDICT.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/superpowers/plans/2026-06-22-mcp-server/SCENARIO.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PLAN.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/PREDICT.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/superpowers/plans/2026-06-22-prompt-expansion/SCENARIO.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/superpowers/plans/2026-06-24-gflow-studio-scaffold/PLAN.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/superpowers/plans/2026-06-24-rest-api-layer/PLAN.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/superpowers/plans/2026-06-26-mcp-e2e-test/PLAN.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/superpowers/plans/2026-07-09-camoufox-adoption/PLAN.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/superpowers/research/2026-06-27-tool-abstraction-evaluation.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/superpowers/specs/2026-06-29-issue-assessment-workflow-design.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/superpowers/spikes/2026-07-09-camoufox-waf-403.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/docs/superpowers/spikes/2026-07-12-ui-cohort-backend-config.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/examples/README.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/examples/batch_from_config.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/examples/multi_prompt_t2i.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/examples/sample_config.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/examples/sample_prompts.txt +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/examples/single_image_t2i.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/examples/workflow_chain.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/llms.txt +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/samples/README.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/samples/captured/01_upload_image.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/samples/captured/02_batchAsyncGenerateVideoText.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/samples/captured/03_batchCheckAsyncVideoGenerationStatus.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/samples/captured/04_archive_workflow.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/samples/captured/05_createProject.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/samples/captured/06_batchGenerateImages.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/samples/captured/07_batchGenerateImages_seeded.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/samples/captured/08_batchAsyncGenerateVideoStartAndEndImage.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/samples/captured/09_batchAsyncGenerateVideoReferenceImages.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/samples/captured/10_batchCheckAsyncVideoGenerationStatus_successful.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/samples/captured/11_batchCheckAsyncVideoGenerationStatus_failed.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/samples/captured/12_create_scene.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/samples/captured/13_sceneWorkflows_update.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/samples/captured/14_get_scene_workflows.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/samples/captured/15_commit_flowWorkflow.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/ci/check_doc_links.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/ci/check_repo_hygiene.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/debug_editor.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/debug_gen_settings.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/debug_settings.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/_recording_client.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/_spike_common.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/active_plan.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/analyze_agent_ui_capture.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/capture_i2v_frame_slots_dom.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/capture_i2v_intercept_submit.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/capture_i2v_model_select_repro.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/capture_i2v_post_bind_state.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/capture_image_add_media_dom.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/capture_locale_invariants.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/cdp_drive_and_probe.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/character_create_spike.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/character_create_spike_v2.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/dump_character_selectors.js +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/make_project.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/materiality_backtest.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/monitor_pr_38.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/patch_character.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/skillopt/README.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/skillopt/harness.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/skillopt/tasks.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/spike_char_editor_dom.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/spike_char_gen_capture.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/spike_image_upscale_capture.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/spike_image_upscale_drive.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/spike_image_upscale_recaptcha_action.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/spike_image_upscale_rest_probe.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/spike_issue170_picker_locale_recon.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/spike_issue174_library_ui_recon.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/spike_movie_attach_payload.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/spike_movie_entity_recon.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/spike_movie_gen_capture.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/spike_movie_picker_select.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/spike_movie_voice_list.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/spike_patch_entity.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/dev/spike_patchright.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/diag/README.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/diag/capture_flow_traffic.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/diag/memory_profile.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/diag/recaptcha_mint.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/e2e/agentic_image_e2e.ps1 +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/e2e/capture_agent_toggle.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/record_demo.ps1 +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/smoke_image.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/smoke_real_chrome_image.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/smoke_video_editor.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/smoke_worker_style.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/spike_waf_camoufox.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/scripts/verify_chrome_auth_viability.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/skills/gflow-cli/SKILL.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/skills/issue-assessment/SKILL.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/skills/issue-resolve/SKILL.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/skills/plan/SKILL.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/skills/pr-council-review/SKILL.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/skills/predict/SKILL.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/skills/scenario/SKILL.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/skills/status/SKILL.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/sonar-project.properties +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/__main__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/_engine.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/_retry.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/_sapisidhash.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/character.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/dto.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/image.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/image_upscale.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/recaptcha.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/routes.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/scene.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/transports/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/transports/_common.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/transports/_fingerprint.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/transports/base.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/transports/drivers/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/transports/drivers/agentic.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/transports/drivers/base.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/transports/drivers/classic.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/transports/drivers/factory.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/transports/experimental/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/transports/experimental/bearer.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/transports/experimental/evaluate_fetch.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/transports/experimental/sapisidhash.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/api/video.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/auth/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/auth/base.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/auth/cookies.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/auth/factory.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/auth/internal_chromium.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/auth/real_chrome.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/auth/strategies.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/auth/verification.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/browser_manager.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/chain.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/chain_manifest.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/cli.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/cli_character.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/cli_data.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/cli_image.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/cli_instructions.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/cli_models.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/cli_movie.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/cli_run.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/cli_scene.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/cli_tools.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/cli_video.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/composition.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/chain_repo.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/migrations/0001_initial.sql +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/migrations/0002_add_cloud_storage.sql +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/migrations/0003_add_scene_tables.sql +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/migrations/0004_add_scene_output_path.sql +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/migrations/0005_add_chain_links.sql +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/migrations/0006_add_operations_metadata.sql +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/migrations/0007_queue.sql +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/migrations/0008_add_operation_expanded_prompt.sql +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/migrations/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/models.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/queries.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/recorder.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/redaction.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/repository.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/data/store.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/errors.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/exceptions.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/image_batch.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/manifest.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/mcp/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/mcp/prompts.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/mcp/resources.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/mcp/server.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/mcp/tools.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/media.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/movie_manifest.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/observability.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/paths.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/profile_store.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/services/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/services/character_create.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/storage.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/tools/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/tools/banned.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/tools/builtin/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/tools/builtin/creative-director.toml +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/tools/invocation.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/tools/loader.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/tools/registry.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/tools/spec.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/ui/app.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/ui/server.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/worker/daemon.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/src/gflow_cli/worker/queue.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tasks/lessons.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/test_assets/sample_batch.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/test_assets/sample_batch.tsv +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/test_assets/sample_batch_invalid.tsv +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/fixtures/character_gen_response.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/fixtures/patch_entity_response.json +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_aisandbox_auth_error.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_aisandbox_auth_headers.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_bearer_redaction.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_character.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_client.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_client_character.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_client_delete_characters.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_client_generate_character.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_client_image.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_client_patch_entity.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_client_scene.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_client_upscale.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_concurrency.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_dto.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_engine.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_image.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_image_dto.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_image_upscale.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_post_json_aisandbox_auth.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_recaptcha.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_retry.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_routes.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_routes_character.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_routes_scene.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_sapisidhash_helper.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_scene_models.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_video.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/test_video_request.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/conftest.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/drivers/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/drivers/test_agentic.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/drivers/test_classic.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/drivers/test_factory.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/drivers/test_ui_mode.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/test_base.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/test_bearer.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/test_common.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/test_evaluate_fetch.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/test_factory.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/test_fingerprint.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/test_sapisidhash.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/test_selector_symmetry.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/test_transport_timeout.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/test_ui_automation_batch.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/test_ui_automation_image_mode.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/test_ui_automation_video.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/api/transports/test_ui_character_editor.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/auth/strategies/test_factory.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/auth/strategies/test_strategies.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/auth/test_cookies.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/auth/test_verification.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_cli_auth_list.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_cli_character.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_cli_character_create.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_cli_data.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_cli_image.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_cli_image_seed_removed.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_cli_image_selector_drift.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_cli_image_upscale.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_cli_instructions.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_cli_models.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_cli_movie.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_cli_run.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_cli_scene.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_cli_tools.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_cli_video.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_cli_video_chain.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_helpers.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_movie_manifest.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_movie_manifest_style_variants.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_settings_validation.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/cli/test_t2i_multi_prompt.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/composition/test_character.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/composition/test_compose_prompt.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/composition/test_handoff.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/composition/test_style_variants.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/composition/test_style_variants_e2e.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/conftest.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/data/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/data/test_chain_repo.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/data/test_find_incomplete_character.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/data/test_models.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/data/test_packaging.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/data/test_recorder.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/data/test_recorder_character.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/data/test_redaction.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/data/test_repository.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/data/test_scene_persistence.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/data/test_settings_and_errors.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/data/test_store_migrations.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/dev/test_recording_client.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/conftest.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_aisandbox_auth_live.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_auth_verification_e2e.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_chain_e2e.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_character_create_e2e.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_daemon_e2e.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_data_layer_e2e.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_i2v_flags_e2e.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_image_batch_e2e.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_image_i2i_ref_cap_e2e.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_json_output_e2e.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_live_agentic_instructions.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_locale_selectors_e2e.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_scene_compose_live.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_tools_e2e.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_transports_e2e.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_video_r2v_ref_cap_e2e.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/e2e/test_video_t2v_e2e.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/auth.feature +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/auth_login.feature +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/character_create.feature +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/character_read.feature +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/conftest.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/image.feature +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/image_upscale.feature +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/instructions.feature +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/locale_picker_include.feature +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/test_auth_login_steps.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/test_auth_steps.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/test_character_create_steps.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/test_character_read_steps.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/test_image_steps.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/test_image_upscale_steps.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/test_instructions_steps.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/test_locale_picker_include_steps.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/test_step_collision_guard.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/test_video_agent_ui_steps.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/test_video_chain_steps.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/video_agent_ui.feature +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/features/video_chain.feature +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/fixtures/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/fixtures/seeded_catalog.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/image_batch/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/image_batch/test_image_manifest.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/image_batch/test_jitter_config.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/image_batch/test_observability_events.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/integration/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/integration/conftest.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/integration/constants.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/integration/test_storage_gcs.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/integration/test_storage_s3.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/mcp/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/mcp/conftest.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/mcp/test_cli_parity.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/mcp/test_server.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/mcp/test_stdio_transport.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/mcp/test_tools_helpers.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/mcp/test_tools_instructions.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/mcp/test_tools_wired.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/scripts/test_analyze_agent_ui_capture.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/scripts/test_capture_locale_invariants.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/scripts/test_check_repo_hygiene.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/scripts/test_materiality_backtest.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/services/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/services/test_character_create_redaction.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/services/test_character_create_saga.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/services/test_character_gen_no_direct_post.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/smoke/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/smoke/test_profile_account_smoke.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/smoke/test_real_flow.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_auth.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_browser_manager.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_chain.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_chain_manifest.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_cli_data.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_config.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_conftest_isolation.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_data_queries.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_documentation_gate.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_errors.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_errors_403.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_manifest.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_marker_registry.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_media.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_observability.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_paths.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_profile_store.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/test_smoke.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/tools/__init__.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/tools/test_banned.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/tools/test_invocation.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/tools/test_loader.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/tools/test_spec.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/ui/test_app.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0}/tests/worker/test_daemon.py +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0/website}/docs/CONFIGURATION.md +0 -0
- {gflow_cli-0.34.0 → gflow_cli-0.36.0/website}/docs/SECURITY.md +0 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Show unreleased changes and last tagged version — insight into recent work.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# `/gflow:changelog` — Recent changes
|
|
6
|
+
|
|
7
|
+
**Read `skills/changelog/SKILL.md` and follow the protocol**, passing `$ARGUMENTS` if given.
|
|
8
|
+
|
|
9
|
+
> Do **not** call `Skill(skill="changelog")` — read the file directly.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Auto-fix lint and formatting, then report types and tests. Run before every commit.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# `/gflow:check` — Quality gates
|
|
6
|
+
|
|
7
|
+
**Read `skills/check/SKILL.md` and follow the protocol**, passing `$ARGUMENTS` if given.
|
|
8
|
+
|
|
9
|
+
> Do **not** call `Skill(skill="check")` — read the file directly.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Use before cutting any gflow-cli release or after a major documentation change — systematic council-driven audit that combines a mechanical 7-section checklist with a 3-agent parallel review (completeness / cross-reference / drift). Produces a consensus verdict and a concrete fix list.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# `/gflow:doc-review` — Documentation Review Gate
|
|
6
|
+
|
|
7
|
+
**Read `skills/doc-review/SKILL.md` and follow the protocol**, passing `$ARGUMENTS` if given.
|
|
8
|
+
|
|
9
|
+
> Do **not** call `Skill(skill="doc-review")` — read the file directly.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Surface open known issues. Call before touching auth, reCAPTCHA, or anything previously flagged.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# `/gflow:known-issues` — Open issues
|
|
6
|
+
|
|
7
|
+
**Read `skills/known-issues/SKILL.md` and follow the protocol**, passing `$ARGUMENTS` if given.
|
|
8
|
+
|
|
9
|
+
> Do **not** call `Skill(skill="known-issues")` — read the file directly.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run pr-council-review (PR or branch mode) plus an external-tools corroboration layer (codex, gemini, opt-in agy) for high-stakes reviews where a same-model-family blind spot is a real risk. Tiers: small (internal only, default) / medium (+codex) / high (+codex+gemini). Wrapper around skills/llm-council/SKILL.md.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# `/gflow:llm-council [PR# | --base <ref>] [--tier small|medium|high] [--include-agy]`
|
|
6
|
+
|
|
7
|
+
**Read `skills/llm-council/SKILL.md` and follow its protocol now**, treating `$ARGUMENTS` as: the PR number or `--base <ref>` (branch mode, same as `/gflow:pr-council-review` / `/gflow:branch-review`), plus `--tier <small|medium|high>` (default `small`) and the optional `--include-agy` flag.
|
|
8
|
+
|
|
9
|
+
> Do **not** call `Skill(skill="llm-council")` or `Skill(skill="pr-council-review")` — the repo's `skills/*/SKILL.md` files are plain Markdown, not registered as Skill-tool-invocable (only `.claude/commands/gflow/*` are). Invoking either errors with `Unknown skill: ...`. Read the files directly instead.
|
|
10
|
+
|
|
11
|
+
`skills/llm-council/SKILL.md` is the canonical body: tier resolution, the tool registry (fixed invocation recipes per external tool — read this before running any external tool, `codex review` in particular is a known trap), the availability-probe step, dispatch flow, and synthesis. It wraps `skills/pr-council-review/SKILL.md` unchanged for the internal dimension council.
|
|
12
|
+
|
|
13
|
+
Siblings: `/gflow:pr-council-review <N>` (internal-only, PR mode), `/gflow:branch-review` (internal-only, branch mode) — use either directly when external corroboration isn't warranted.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Cut a new gflow-cli release — bump version, update CHANGELOG, tag, push, and back-merge.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# `/gflow:release` — Cut a new release
|
|
6
|
+
|
|
7
|
+
**Read `skills/release/SKILL.md` and follow the protocol**, passing `$ARGUMENTS` if given.
|
|
8
|
+
|
|
9
|
+
> Do **not** call `Skill(skill="release")` — read the file directly.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Check the SonarCloud quality gate for a PR (or the current branch) and drive it to zero. Reports GREEN, or the exact PR-scoped new issues/hotspots/coverage gaps to fix.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# `/gflow:sonar [PR#]` — SonarCloud quality gate
|
|
6
|
+
|
|
7
|
+
**Read `skills/sonar/SKILL.md` and follow the protocol**, passing `$ARGUMENTS` if given.
|
|
8
|
+
|
|
9
|
+
> Do **not** call `Skill(skill="sonar")` — read the file directly.
|
|
@@ -155,6 +155,20 @@
|
|
|
155
155
|
# derivation (tab title / page hints) fails.
|
|
156
156
|
# GFLOW_CLI_PROJECT_NAME=
|
|
157
157
|
|
|
158
|
+
# -----------------------------------------------------------------------------
|
|
159
|
+
# Debugging (opt-in only — both can expose secrets, see docs/CONFIGURATION.md)
|
|
160
|
+
# -----------------------------------------------------------------------------
|
|
161
|
+
|
|
162
|
+
# Captures full Playwright network traffic (requests, responses, headers,
|
|
163
|
+
# cookies) to this HAR file for the session. SECURITY: a HAR file contains
|
|
164
|
+
# live auth cookies and bearer tokens -- never share one publicly.
|
|
165
|
+
# GFLOW_CLI_HAR_PATH=
|
|
166
|
+
|
|
167
|
+
# Prints the real exception message + traceback for unhandled errors, to the
|
|
168
|
+
# console and (under --json) into the payload, instead of the generic
|
|
169
|
+
# placeholder. SECURITY: may leak tokens/cookies present in exception text.
|
|
170
|
+
# GFLOW_CLI_DEBUG_TRACEBACK=
|
|
171
|
+
|
|
158
172
|
# -----------------------------------------------------------------------------
|
|
159
173
|
# Headless Daemon (gflow serve)
|
|
160
174
|
# -----------------------------------------------------------------------------
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
name: Deploy site to GitHub Pages
|
|
2
|
+
|
|
3
|
+
# Publishes the marketing landing (index.html) at the site root and the
|
|
4
|
+
# Material for MkDocs docs portal (website/) at /docs. One site, two parts.
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches: [develop]
|
|
9
|
+
paths:
|
|
10
|
+
- "index.html"
|
|
11
|
+
- "website/**"
|
|
12
|
+
- ".github/workflows/pages.yml"
|
|
13
|
+
workflow_dispatch:
|
|
14
|
+
|
|
15
|
+
permissions:
|
|
16
|
+
contents: read
|
|
17
|
+
pages: write
|
|
18
|
+
id-token: write
|
|
19
|
+
|
|
20
|
+
# Never cancel an in-progress deploy; queue instead.
|
|
21
|
+
concurrency:
|
|
22
|
+
group: pages
|
|
23
|
+
cancel-in-progress: false
|
|
24
|
+
|
|
25
|
+
jobs:
|
|
26
|
+
build:
|
|
27
|
+
runs-on: ubuntu-latest
|
|
28
|
+
steps:
|
|
29
|
+
- uses: actions/checkout@v4
|
|
30
|
+
- uses: actions/setup-python@v5
|
|
31
|
+
with:
|
|
32
|
+
python-version: "3.12"
|
|
33
|
+
- name: Install MkDocs Material
|
|
34
|
+
run: pip install "mkdocs-material>=9,<10"
|
|
35
|
+
- name: Build docs portal
|
|
36
|
+
working-directory: website
|
|
37
|
+
run: mkdocs build
|
|
38
|
+
- name: Assemble site (landing at /, docs at /docs)
|
|
39
|
+
run: |
|
|
40
|
+
mkdir -p _site
|
|
41
|
+
cp index.html _site/
|
|
42
|
+
cp -r website/site _site/docs
|
|
43
|
+
- uses: actions/upload-pages-artifact@v3
|
|
44
|
+
with:
|
|
45
|
+
path: _site
|
|
46
|
+
|
|
47
|
+
deploy:
|
|
48
|
+
needs: build
|
|
49
|
+
runs-on: ubuntu-latest
|
|
50
|
+
environment:
|
|
51
|
+
name: github-pages
|
|
52
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
53
|
+
steps:
|
|
54
|
+
- id: deployment
|
|
55
|
+
uses: actions/deploy-pages@v4
|
|
@@ -91,6 +91,20 @@ The `skills/` directory ships installable agent skill docs in plain Markdown wit
|
|
|
91
91
|
| `plan` | [`skills/plan/SKILL.md`](skills/plan/SKILL.md) | Create a structured task-by-task implementation plan for a feature |
|
|
92
92
|
| `status` | [`skills/status/SKILL.md`](skills/status/SKILL.md) | Show current plan state, progress, and next unchecked task |
|
|
93
93
|
| `pr-council-review` | [`skills/pr-council-review/SKILL.md`](skills/pr-council-review/SKILL.md) | Multi-dimensional PR council review |
|
|
94
|
+
| `llm-council` | [`skills/llm-council/SKILL.md`](skills/llm-council/SKILL.md) | Wraps `pr-council-review` with external CLI reviewers (`codex`/`gemini`, opt-in `agy`) for high-stakes reviews |
|
|
95
|
+
| `issue-assessment` | [`skills/issue-assessment/SKILL.md`](skills/issue-assessment/SKILL.md) | Triage a GitHub issue (read-only) before any fix work |
|
|
96
|
+
| `issue-resolve` | [`skills/issue-resolve/SKILL.md`](skills/issue-resolve/SKILL.md) | Drive an assessed issue to a test-first fix + draft PR |
|
|
97
|
+
| `check` | [`skills/check/SKILL.md`](skills/check/SKILL.md) | Quality gates (lint/format/types/tests) before every commit |
|
|
98
|
+
| `changelog` | [`skills/changelog/SKILL.md`](skills/changelog/SKILL.md) | Unreleased changes + last tagged version |
|
|
99
|
+
| `known-issues` | [`skills/known-issues/SKILL.md`](skills/known-issues/SKILL.md) | Open/mitigated known issues — before auth/reCAPTCHA work |
|
|
100
|
+
| `sonar` | [`skills/sonar/SKILL.md`](skills/sonar/SKILL.md) | Drive the SonarCloud quality gate to zero for a PR/branch |
|
|
101
|
+
| `doc-review` | [`skills/doc-review/SKILL.md`](skills/doc-review/SKILL.md) | Council-driven documentation audit before a release |
|
|
102
|
+
| `release` | [`skills/release/SKILL.md`](skills/release/SKILL.md) | Cut a release — bump, CHANGELOG, tag, push, back-merge |
|
|
103
|
+
|
|
104
|
+
**RULE — agent-agnostic by construction.** Core skills live in `skills/<name>/SKILL.md`
|
|
105
|
+
and must be resolvable by ANY agent via this file. Vendor directories hold thin wrappers
|
|
106
|
+
only (`.claude/commands/gflow/*.md` are pointers into `skills/`); never put protocol
|
|
107
|
+
content in a vendor directory.
|
|
94
108
|
|
|
95
109
|
**Cursor / Aider / Codex / Gemini CLI (`agy`):** paste or include the relevant `SKILL.md` in your system context. Note: in the `agy` TUI prompt, custom slash commands (e.g. `/gflow:pr-council-review`) are blocked by the TUI's command parser. Type them as plain text without the leading slash (e.g. `gflow:pr-council-review`, `gflow:branch-review`, or `gflow:check`) to trigger the corresponding agent skill workflow.
|
|
96
110
|
**Claude Code:** the `/gflow:` slash commands in `.claude/commands/gflow/` are auto-discovered when the project is open — no extra setup needed. To register a skill globally, copy the command file to `~/.claude/commands/`.
|
|
@@ -7,6 +7,37 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.36.0] — 2026-07-16
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **`GFLOW_CLI_HAR_PATH`:** captures full Playwright network traffic (requests, responses, headers, cookies) to a HAR file for the session — useful for diagnosing wire-format surprises or WAF rejections. Opt-in, env-var only; the file is hardened to `0600` on POSIX after Playwright writes it (#316).
|
|
15
|
+
- **`GFLOW_CLI_DEBUG_TRACEBACK`:** prints the real exception message + traceback for unhandled errors — to the console and, under `--json`, into the payload's `error.detail`/`error.traceback` fields — instead of the generic placeholder. The structured telemetry event stays SHA-256-hashed unconditionally either way; this only changes what the operator/caller sees (#316).
|
|
16
|
+
- **`llm-council` skill:** `/gflow:llm-council` composes with `pr-council-review`, adding `codex`/`gemini` (opt-in `agy`) as independent external reviewers alongside the internal Claude-subagent council for high-stakes reviews (#320).
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- **Reference entity smuggling:** a poisoned character entity (from a `gflow character create` that failed mid-workflow, e.g. the body-triptych step) could leak its `referenceEntities` into unrelated `gflow image i2i` calls in the same project workspace, even when the caller never passed `--reference-entity`. The UI-automation interceptor now strips unrequested `referenceEntities` before submit (#312).
|
|
21
|
+
|
|
22
|
+
## [0.35.0] — 2026-07-14
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
|
|
26
|
+
- **Multimodal Reverse-Engineering:** Integrated `gflow reverse-engineer` with `claude-video`'s `watch.py` script. When a video file or URL is passed, gflow now automatically extracts frames and uses the multimodal capabilities of Gemini to reconstruct a detailed, structured prompt.
|
|
27
|
+
- **Storyboard Creator:** Added a new built-in tool `storyboard` designed to scaffold a cohesive multi-panel storyboard from a narrative concept or scene description, ensuring visual and stylistic continuity across all panels.
|
|
28
|
+
- **GitHub Pages Site:** Created a static site structure for GitHub Pages, including a landing page and material-based documentation layout, with a polished theme aligned with project aesthetics (#308, #309).
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
|
|
32
|
+
- **Dynamic Token Budget:** The `maxOutputTokens` parameter for Gemini prompt expansion now dynamically scales as a fraction of `max_output_chars` (approx. 1 token per 4 characters), clamped to a minimum floor of 512 tokens.
|
|
33
|
+
- **Agent-Agnostic Skills:** Refactored six command protocols and relocated them to the `skills/` directory to ensure they are accessible by any developer or AI coding agent regardless of the tool being used (#305).
|
|
34
|
+
- **Security Updates:** Bumped the `pillow` dependency to `>=12.3.0` to address 5 CVEs (PYSEC-2026-2253..2257) (#306).
|
|
35
|
+
- **Ruff Dependency:** Updated the dev-dependency `ruff` from `0.15.20` to `0.15.21` (#304).
|
|
36
|
+
|
|
37
|
+
### Fixed
|
|
38
|
+
|
|
39
|
+
- **Type Safety:** Added explicit `dict[str, object]` type annotations to the payload building in `PromptExpander` to satisfy strict Pyright invariance checks on dictionary values.
|
|
40
|
+
|
|
10
41
|
## [0.34.0] — 2026-07-12
|
|
11
42
|
|
|
12
43
|
### Added
|
|
@@ -1961,7 +1992,9 @@ shell-script template that branches on these codes.
|
|
|
1961
1992
|
|
|
1962
1993
|
First skeleton. Not functional end-to-end yet.
|
|
1963
1994
|
|
|
1964
|
-
[Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.
|
|
1995
|
+
[Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v0.36.0...HEAD
|
|
1996
|
+
[0.36.0]: https://github.com/ffroliva/gflow-cli/compare/v0.35.0...v0.36.0
|
|
1997
|
+
[0.35.0]: https://github.com/ffroliva/gflow-cli/compare/v0.34.0...v0.35.0
|
|
1965
1998
|
[0.34.0]: https://github.com/ffroliva/gflow-cli/compare/v0.33.0...v0.34.0
|
|
1966
1999
|
[0.33.0]: https://github.com/ffroliva/gflow-cli/compare/v0.32.1...v0.33.0
|
|
1967
2000
|
[0.32.1]: https://github.com/ffroliva/gflow-cli/compare/v0.32.0...v0.32.1
|
|
@@ -291,10 +291,38 @@ gflow video batch ./batch-a.tsv --profile work
|
|
|
291
291
|
gflow video batch ./batch-b.tsv --profile personal
|
|
292
292
|
```
|
|
293
293
|
|
|
294
|
-
**Roadmap:** Phase 4 (v0.4.0a2) added concurrency *inside* one `gflow
|
|
294
|
+
**Roadmap:** Phase 4 (v0.4.0a2) added concurrency *inside* one `gflow-cli` process via `GFLOW_CLI_CONCURRENCY=N` (per-worker Page pool on one shared BrowserContext). Cross-process same-profile serialization is a Chromium constraint we cannot work around without rewriting the auth model — multiple shells against the same profile remains a "use different profiles" workaround.
|
|
295
295
|
|
|
296
296
|
---
|
|
297
297
|
|
|
298
|
+
### Chromium cookie database locks block yt-dlp integrations (Instagram/restricted download paths)
|
|
299
|
+
|
|
300
|
+
- **Status:** Mitigated · **Severity:** Low-Medium · **Affects:** any downstream helper calling `yt-dlp` (including `claude-video`, `cg-decode`/`refanalyzer`, or `experience-vault`)
|
|
301
|
+
|
|
302
|
+
When executing `yt-dlp` from automated shell calls or Python wrappers while a Chromium-based browser (Chrome or Edge) is active, you may see:
|
|
303
|
+
```text
|
|
304
|
+
ERROR: Could not copy Chrome cookie database.
|
|
305
|
+
```
|
|
306
|
+
This is because Chromium holds an exclusive lock on its SQLite cookie database while active, causing `yt-dlp` to crash when attempting to extract cookies from the browser.
|
|
307
|
+
|
|
308
|
+
**Mitigation & Workaround:**
|
|
309
|
+
1. **Cookie Export:** Export Netscape-formatted cookies from your logged-in browser session to a static file (e.g. `ig_cookies.txt` or `.auth/ig_cookies.txt`).
|
|
310
|
+
2. **Configuration Isolation:** Prevent `yt-dlp` from reading global user configurations that might force browser-cookie loading (e.g. `%APPDATA%\yt-dlp\config.txt` containing `--cookies-from-browser chrome`).
|
|
311
|
+
- In CLI calls, pass `--no-config` (or `--ignore-config`):
|
|
312
|
+
```bash
|
|
313
|
+
yt-dlp --no-config --cookies path/to/cookies.txt [URL]
|
|
314
|
+
```
|
|
315
|
+
- In Python `YoutubeDL` constructors, pass `"ignoreconfig": True` in the options dictionary:
|
|
316
|
+
```python
|
|
317
|
+
opts = {
|
|
318
|
+
"cookiefile": "path/to/cookies.txt",
|
|
319
|
+
"ignoreconfig": True,
|
|
320
|
+
}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
|
|
298
326
|
### Flow's first-upload terms-of-use dialog ("Aviso") blocks the worker (worker-only)
|
|
299
327
|
|
|
300
328
|
- **Status:** Open · **Severity:** Low · **Affects:** the legacy in-tree Compiled Growth worker, NOT `gflow-cli` itself
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gflow-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.36.0
|
|
4
4
|
Summary: Unofficial CLI for Google Flow — drive Veo image-to-video generations from the terminal.
|
|
5
5
|
Project-URL: Homepage, https://github.com/ffroliva/gflow-cli
|
|
6
6
|
Project-URL: Issues, https://github.com/ffroliva/gflow-cli/issues
|
|
@@ -58,7 +58,7 @@ Requires-Dist: numpy>=1.24; extra == 'dev'
|
|
|
58
58
|
Requires-Dist: pyright>=1.1.0; extra == 'dev'
|
|
59
59
|
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
60
60
|
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
61
|
-
Requires-Dist: ruff==0.15.
|
|
61
|
+
Requires-Dist: ruff==0.15.21; extra == 'dev'
|
|
62
62
|
Provides-Extra: gcs
|
|
63
63
|
Requires-Dist: gcsfs>=2024.2.0; extra == 'gcs'
|
|
64
64
|
Requires-Dist: universal-pathlib>=0.2.5; extra == 'gcs'
|