forgeoptimizer 1.0.3__tar.gz → 1.0.4__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.
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/PKG-INFO +1 -1
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime/mcp_config.py +12 -1
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime/wrappers.py +6 -2
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/pyproject.toml +1 -1
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_cli.py +44 -2
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/uv.lock +1 -1
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/.github/workflows/ci.yml +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/.gitignore +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/CHANGELOG.md +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/CONTRIBUTING.md +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/CREDITS.md +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/Forge.toml +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/LICENSE +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/MIGRATION.md +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/README.md +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/RELEASE_NOTES.md +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/SECURITY.md +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/SUPPORT.md +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/docs/commands.md +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/budget/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/budget/middleware.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/budget/planner.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/budget/window.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/build/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/build/apply.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/build/caveman_optimize.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/build/diff_extract.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/build/llm.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/build/optimize.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/build/patch_generator.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/build/pipeline.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/build/retrieval.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/build/summarize.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/build/test_run.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/builder/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/builder/builder.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/builder/editor.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/builder/formatter.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/cli/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/cli/bootstrap.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/cli/commands_auth.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/cli/commands_commit.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/cli/commands_diagnostics.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/cli/commands_graph.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/cli/commands_inspect.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/cli/commands_wrappers.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/cli/daemon.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/cli/daemon_utils.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/cli/main.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/cli/ui.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/config/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/config/loader.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/config/settings.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/config/writer.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/conversation/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/conversation/manager.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/conversation/session.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/core/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/core/container.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/core/context.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/core/credentials.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/core/errors.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/core/events.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/core/logging.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/core/models.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/core/plugins.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/core/service.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/docs/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/docs/generator.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/context.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/defaults.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/events.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/execution.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/plugins.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/runner.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/stages/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/stages/caveman_optimizer.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/stages/context_optimizer.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/stages/execution_engine_stage.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/stages/git_engine.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/stages/intent_analyzer.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/stages/model_router.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/stages/planning_engine.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/stages/repository_analyzer.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/stages/validation_engine.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/git/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/git/repo.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/git/service.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/graph/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/graph/backend_forgegraph.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/graph/edge.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/graph/forgegraph.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/graph/graph.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/graph/indexer.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/graph/node.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/graph/repository.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/memory/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/memory/cache.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/memory/caching_middleware.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/memory/history.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/memory/memory_compression.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/memory/middleware.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/memory/store.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/middleware/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/middleware/base.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/middleware/builder.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/middleware/caveman_adapter.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/middleware/context.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/middleware/decorators.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/middleware/defaults.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/middleware/exceptions.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/middleware/executor.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/middleware/graphify_adapter.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/middleware/middleware_manager.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/middleware/pipeline.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/middleware/ponytail_adapter.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/middleware/registration.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/middleware/request.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/middleware/response.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/negotiator/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/negotiator/middleware.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/negotiator/negotiator.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/observability/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/observability/health.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/observability/metrics.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/observability/middleware.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/observability/tracing.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/adaptive_budget.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/ast_extractor.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/cache.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/caveman/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/caveman/cli.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/caveman/decorator.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/caveman/factory.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/caveman/ruleset.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/caveman/state.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/chunker.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/comment_stripper.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/compression.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/cost_estimator.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/embedding_cache.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/git_context.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/intelligent_retrieval.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/optimizer.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/orchestrator.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/output/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/output/optimizer.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/ponytail/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/ponytail/cli.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/ponytail/decorator.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/ponytail/factory.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/ponytail/ruleset.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/ponytail/state.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/prompt_optimizer.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/quality_validation.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/ranker.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/retrieval_cache.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/semantic_ranking.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/summarizer.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/optimizer/token_estimator.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/orchestrator/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/planner/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/planner/agent.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/planner/plan.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/planner/planner.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/planner/render.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/planner/serialize.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/planner/software.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/platform/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/platform/core.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/platform/deps.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/platform/paths.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/platform/shell.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/platform/update.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/plugins/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/plugins/hook.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/policy/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/policy/engine.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/policy/exceptions.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/policy/middleware.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/policy/rules.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/prompts/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/prompts/loader.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/prompts/registry.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/prompts/renderer.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/anthropic.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/base.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/builtin.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/conversation.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/exceptions.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/google.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/health.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/http_base.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/mock.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/openai.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/openai_compatible.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/provider_capabilities.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/provider_context.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/provider_events.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/provider_factory.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/provider_manager.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/provider_metadata.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/provider_registry.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/provider_router.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/router.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/providers/router_state.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/registry/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/registry/model_registry.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/resilience/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/resilience/circuit_breaker.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/resilience/exceptions.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/resilience/middleware.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/resilience/retry.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/review/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/review/analyzer.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/review/analyzers/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/review/analyzers/architecture.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/review/analyzers/complexity.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/review/analyzers/dead_code.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/review/analyzers/duplicates.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/review/analyzers/performance.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/review/analyzers/security.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/review/finding.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/review/report.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/review/repository.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/review/suggestions.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime/agents.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime/cache_store.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime/pipeline_runner.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime/prepare.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime/shared_extraction.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime_core/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime_core/config_manager.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime_core/container.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime_core/context.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime_core/errors.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime_core/events.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime_core/factory.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime_core/interfaces.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime_core/lifecycle.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime_core/provider_registry.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime_core/request.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime_core/response.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/runtime_core/service_registry.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/scheduler/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/scheduler/scheduler.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/scheduler/task.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/scheduler/worker.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/streaming/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/streaming/events.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/streaming/middleware.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/templates/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/templates/engine.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/templates/registry.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/transport/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/transport/daemon.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/transport/http_server.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/transport/server.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/utils/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/utils/fs.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/utils/ids.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/utils/io.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/utils/paths.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/utils/timing.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/packaging/scoop/forgecli.json +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/packaging/winget/forgecli.ForgeCli.yaml +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/__init__.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/conftest.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_auth.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_budget_context.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_build_pipeline.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_caching_observability.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_caveman_cli.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_caveman_ruleset.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_commit.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_config.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_container.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_conversation_optimization.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_diagnostics.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_e2e.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_engine.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_forgegraph_client.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_graph.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_mcp_config.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_memory.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_middleware.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_negotiator.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_optimizer.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_orchestrator.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_output_optimization.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_planner.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_planner_render.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_platform.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_policy.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_ponytail_cli.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_ponytail_ruleset.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_prompts.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_provider.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_providers.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_providers_http.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_redesign_optimizers.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_repository_graph.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_resilience.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_review.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_router.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_runtime.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_runtime_core.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_runtime_core_phase2.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_scheduler_plugins.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_software_planner.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_streaming.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_token_optimizations.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_transport.py +0 -0
- {forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: forgeoptimizer
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.4
|
|
4
4
|
Summary: Forge — AI optimization runtime for Claude Code, Codex, Cursor, Antigravity
|
|
5
5
|
Project-URL: Homepage, https://github.com/mdshzb04/Forge
|
|
6
6
|
Project-URL: Repository, https://github.com/mdshzb04/Forge
|
|
@@ -98,6 +98,15 @@ def configure_mcp_for_agent(spec: AgentSpec, repo_root: Path) -> None:
|
|
|
98
98
|
|
|
99
99
|
_write_json_mcp(path, target.table)
|
|
100
100
|
|
|
101
|
+
except PermissionError as e:
|
|
102
|
+
|
|
103
|
+
# Quietly skip permission errors on project/workspace targets since home targets are configured
|
|
104
|
+
if target.base == "repo":
|
|
105
|
+
|
|
106
|
+
continue
|
|
107
|
+
|
|
108
|
+
info(f"Note: Could not auto-configure {target.label or spec.name} MCP: {e}")
|
|
109
|
+
|
|
101
110
|
except Exception as e:
|
|
102
111
|
|
|
103
112
|
info(f"Note: Could not auto-configure {target.label or spec.name} MCP: {e}")
|
|
@@ -384,7 +393,9 @@ def configure_project_local_mcp(repo_root: Path) -> None:
|
|
|
384
393
|
if resolved == Path.home().resolve() or resolved == Path("/").resolve():
|
|
385
394
|
return
|
|
386
395
|
|
|
387
|
-
|
|
396
|
+
with contextlib.suppress(PermissionError):
|
|
397
|
+
|
|
398
|
+
_write_json_mcp(repo_root / ".mcp.json", "mcpServers")
|
|
388
399
|
|
|
389
400
|
|
|
390
401
|
|
|
@@ -78,8 +78,12 @@ def launch_wrapper(
|
|
|
78
78
|
|
|
79
79
|
if spec.supports_mcp:
|
|
80
80
|
try:
|
|
81
|
-
from forgecli.runtime.mcp_config import
|
|
82
|
-
|
|
81
|
+
from forgecli.runtime.mcp_config import (
|
|
82
|
+
configure_mcp_for_agent,
|
|
83
|
+
configure_project_local_mcp,
|
|
84
|
+
)
|
|
85
|
+
configure_mcp_for_agent(spec, repo_root)
|
|
86
|
+
configure_project_local_mcp(repo_root)
|
|
83
87
|
except Exception:
|
|
84
88
|
pass
|
|
85
89
|
|
|
@@ -486,6 +486,7 @@ def test_mcp_auto_configuration(tmp_path: Path, monkeypatch) -> None:
|
|
|
486
486
|
|
|
487
487
|
import subprocess
|
|
488
488
|
|
|
489
|
+
# 1. Test Claude Code MCP Configuration
|
|
489
490
|
with (
|
|
490
491
|
patch("forgecli.runtime.wrappers.which", return_value="/usr/bin/claude"),
|
|
491
492
|
patch(
|
|
@@ -507,7 +508,22 @@ def test_mcp_auto_configuration(tmp_path: Path, monkeypatch) -> None:
|
|
|
507
508
|
|
|
508
509
|
assert "forge" in claude_config.get("mcpServers", {})
|
|
509
510
|
|
|
510
|
-
|
|
511
|
+
# Verify other agents' configs are NOT created yet
|
|
512
|
+
assert not (mock_home / ".cursor" / "mcp.json").exists()
|
|
513
|
+
|
|
514
|
+
# 2. Test Cursor MCP Configuration
|
|
515
|
+
with (
|
|
516
|
+
patch("forgecli.runtime.wrappers.which", return_value="/usr/bin/cursor"),
|
|
517
|
+
patch(
|
|
518
|
+
"forgecli.runtime.wrappers.subprocess.run",
|
|
519
|
+
return_value=subprocess.CompletedProcess([], 0, stdout="", stderr=""),
|
|
520
|
+
),
|
|
521
|
+
):
|
|
522
|
+
runner = CliRunner()
|
|
523
|
+
|
|
524
|
+
result = runner.invoke(app, ["cursor", "-p", str(mock_repo)], catch_exceptions=False)
|
|
525
|
+
|
|
526
|
+
assert result.exit_code == 0
|
|
511
527
|
|
|
512
528
|
cursor_global_file = mock_home / ".cursor" / "mcp.json"
|
|
513
529
|
|
|
@@ -519,7 +535,19 @@ def test_mcp_auto_configuration(tmp_path: Path, monkeypatch) -> None:
|
|
|
519
535
|
|
|
520
536
|
assert (mock_repo / ".cursor" / "mcp.json").exists()
|
|
521
537
|
|
|
522
|
-
|
|
538
|
+
# 3. Test Codex MCP Configuration
|
|
539
|
+
with (
|
|
540
|
+
patch("forgecli.runtime.wrappers.which", return_value="/usr/bin/codex"),
|
|
541
|
+
patch(
|
|
542
|
+
"forgecli.runtime.wrappers.subprocess.run",
|
|
543
|
+
return_value=subprocess.CompletedProcess([], 0, stdout="", stderr=""),
|
|
544
|
+
),
|
|
545
|
+
):
|
|
546
|
+
runner = CliRunner()
|
|
547
|
+
|
|
548
|
+
result = runner.invoke(app, ["codex", "-p", str(mock_repo)], catch_exceptions=False)
|
|
549
|
+
|
|
550
|
+
assert result.exit_code == 0
|
|
523
551
|
|
|
524
552
|
codex_toml = mock_home / ".codex" / "config.toml"
|
|
525
553
|
|
|
@@ -527,6 +555,20 @@ def test_mcp_auto_configuration(tmp_path: Path, monkeypatch) -> None:
|
|
|
527
555
|
|
|
528
556
|
assert "[mcp_servers.forge]" in codex_toml.read_text(encoding="utf-8")
|
|
529
557
|
|
|
558
|
+
# 4. Test Antigravity MCP Configuration
|
|
559
|
+
with (
|
|
560
|
+
patch("forgecli.runtime.wrappers.which", return_value="/usr/bin/antigravity"),
|
|
561
|
+
patch(
|
|
562
|
+
"forgecli.runtime.wrappers.subprocess.run",
|
|
563
|
+
return_value=subprocess.CompletedProcess([], 0, stdout="", stderr=""),
|
|
564
|
+
),
|
|
565
|
+
):
|
|
566
|
+
runner = CliRunner()
|
|
567
|
+
|
|
568
|
+
result = runner.invoke(app, ["antigravity", "-p", str(mock_repo)], catch_exceptions=False)
|
|
569
|
+
|
|
570
|
+
assert result.exit_code == 0
|
|
571
|
+
|
|
530
572
|
antigravity_json = mock_home / ".gemini" / "config" / "mcp_config.json"
|
|
531
573
|
|
|
532
574
|
assert antigravity_json.exists()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{forgeoptimizer-1.0.3 → forgeoptimizer-1.0.4}/forgecli/engine/stages/execution_engine_stage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|