switchforge 2.0.0__tar.gz → 2.0.1__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.
- {switchforge-2.0.0 → switchforge-2.0.1}/PKG-INFO +1 -1
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/auth.py +2 -1
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/cli.py +2 -1
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/models/config.py +1 -1
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/utils/reporter.py +4 -2
- {switchforge-2.0.0 → switchforge-2.0.1}/pyproject.toml +1 -1
- {switchforge-2.0.0 → switchforge-2.0.1}/.gitignore +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/README.md +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge-core.spec +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/__init__.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/__main__.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/ai/__init__.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/ai/prompts.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/ai/provider.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/ai/structured.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/config.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/core/__init__.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/core/agent_manager.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/core/coverage.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/core/file_manager.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/models/__init__.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/models/dto.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/models/project.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/models/test_result.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/orchestrator.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/phases/__init__.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/phases/analyze_project.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/phases/audit_tests.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/phases/compile_fix.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/phases/coverage_report.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/phases/detect_stack.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/phases/exclusion_scan.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/phases/fix_broken.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/phases/generate_tests.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/phases/journey_mapping.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/phases/self_learn.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/utils/__init__.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/utils/logger.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/utils/shell.py +0 -0
- {switchforge-2.0.0 → switchforge-2.0.1}/forge_core/utils/tokens.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: switchforge
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: AI-powered backend test generation engine
|
|
5
5
|
Project-URL: Homepage, https://theswitchcompany.online/products/forge/core
|
|
6
6
|
Project-URL: Repository, https://github.com/switchcompany/forge-core
|
|
@@ -24,7 +24,8 @@ def verify_license(config: ForgeConfig) -> ForgeConfig:
|
|
|
24
24
|
logger.info("Verifying license with SaaS API...")
|
|
25
25
|
try:
|
|
26
26
|
license_info = asyncio.run(check_license(config))
|
|
27
|
-
except Exception:
|
|
27
|
+
except Exception as e:
|
|
28
|
+
logger.warn(f"License check failed: {e}")
|
|
28
29
|
license_info = {}
|
|
29
30
|
|
|
30
31
|
if not license_info:
|
|
@@ -105,7 +105,8 @@ def run(
|
|
|
105
105
|
|
|
106
106
|
# Upload report to SaaS (if authenticated)
|
|
107
107
|
if config.auth_token:
|
|
108
|
-
|
|
108
|
+
import dataclasses
|
|
109
|
+
asyncio.run(upload_report(config, dataclasses.asdict(report)))
|
|
109
110
|
|
|
110
111
|
# Exit with appropriate code
|
|
111
112
|
if report.production_files_changed > 0:
|
|
@@ -64,7 +64,9 @@ async def check_license(config: ForgeConfig) -> dict[str, Any]:
|
|
|
64
64
|
resp = await client.get(url, headers=headers)
|
|
65
65
|
if resp.status_code == 200:
|
|
66
66
|
return resp.json()
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
else:
|
|
68
|
+
logger.warn(f"License API returned {resp.status_code}: {resp.text[:200]}")
|
|
69
|
+
except Exception as e:
|
|
70
|
+
logger.warn(f"License API unreachable: {e}")
|
|
69
71
|
|
|
70
72
|
return {}
|
|
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
|