forgexa-cli 1.66.0__tar.gz → 1.66.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.
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/PKG-INFO +1 -1
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli/__init__.py +1 -1
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli/aws_evidence.py +50 -10
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli/daemon.py +1 -1
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli.egg-info/PKG-INFO +1 -1
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/pyproject.toml +1 -1
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/README.md +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli/_build_config.py +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli/_local_bind.py +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli/agent_core.py +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli/autoupgrade.py +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli/main.py +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli/py.typed +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli/runtime_evidence.py +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli/zcode_protocol.py +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli.egg-info/SOURCES.txt +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli.egg-info/dependency_links.txt +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli.egg-info/entry_points.txt +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli.egg-info/requires.txt +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/forgexa_cli.egg-info/top_level.txt +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/setup.cfg +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/tests/test_auth_and_runtime_commands.py +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/tests/test_autoupgrade.py +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/tests/test_check_command.py +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/tests/test_expiry_warnings_and_revoke.py +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/tests/test_local_bind_commands.py +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/tests/test_runtime_credentials.py +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/tests/test_session_credentials.py +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/tests/test_silent_install.py +0 -0
- {forgexa_cli-1.66.0 → forgexa_cli-1.66.1}/tests/test_upgrade_observability.py +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""forgexa-cli — Forgexa command-line client."""
|
|
2
|
-
__version__ = "1.66.
|
|
2
|
+
__version__ = "1.66.1"
|
|
@@ -35,6 +35,54 @@ SECRET_FIELDS = frozenset(
|
|
|
35
35
|
}
|
|
36
36
|
)
|
|
37
37
|
|
|
38
|
+
MODEL_ENDPOINT_KEYS = {
|
|
39
|
+
"claude": ("ANTHROPIC_BASE_URL",),
|
|
40
|
+
"mimo": ("ANTHROPIC_BASE_URL",),
|
|
41
|
+
"deepseek": ("DEEPSEEK_BASE_URL", "ANTHROPIC_BASE_URL"),
|
|
42
|
+
"copilot": ("COPILOT_API_URL", "GITHUB_COPILOT_BASE_URL", "GH_HOST"),
|
|
43
|
+
"gemini": ("GOOGLE_GEMINI_BASE_URL", "GEMINI_API_BASE_URL"),
|
|
44
|
+
"kimi": ("KIMI_BASE_URL", "OPENAI_BASE_URL"),
|
|
45
|
+
}
|
|
46
|
+
MODEL_PROVIDER_LABELS = {
|
|
47
|
+
"anthropic": "Anthropic",
|
|
48
|
+
"openai": "OpenAI",
|
|
49
|
+
"google": "Google",
|
|
50
|
+
"github": "GitHub Copilot",
|
|
51
|
+
"moonshot": "Moonshot / Kimi",
|
|
52
|
+
"deepseek": "DeepSeek",
|
|
53
|
+
"xiaomi": "Xiaomi MiMo",
|
|
54
|
+
"alibaba": "Alibaba Cloud / Qwen",
|
|
55
|
+
"tencent": "Tencent / CodeBuddy",
|
|
56
|
+
"qoder": "Qoder",
|
|
57
|
+
"bytedance": "ByteDance / Trae",
|
|
58
|
+
"zhipu": "Z.ai / ZCode",
|
|
59
|
+
}
|
|
60
|
+
AGENT_MODEL_PROVIDERS = {
|
|
61
|
+
"claude": ("Claude Code", "anthropic"),
|
|
62
|
+
"codex": ("Codex", "openai"),
|
|
63
|
+
"opencode": ("OpenCode", None),
|
|
64
|
+
"mimo": ("MiMo Code", "xiaomi"),
|
|
65
|
+
"kimi": ("Kimi Code", "moonshot"),
|
|
66
|
+
"qwen": ("Qwen Code", "alibaba"),
|
|
67
|
+
"codebuddy": ("CodeBuddy", "tencent"),
|
|
68
|
+
"qoder": ("Qoder CLI", "qoder"),
|
|
69
|
+
"trae": ("TraeCode CLI", "bytedance"),
|
|
70
|
+
"zcode": ("ZCode", "zhipu"),
|
|
71
|
+
"copilot": ("GitHub Copilot", "github"),
|
|
72
|
+
"gemini": ("Gemini CLI", "google"),
|
|
73
|
+
"deepseek": ("DeepSeek Harness", "deepseek"),
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def provider_catalog() -> dict:
|
|
78
|
+
agents = [{"agent_id": agent_id, "label": label, "provider": provider,
|
|
79
|
+
"evidence_supported": agent_id in MODEL_ENDPOINT_KEYS}
|
|
80
|
+
for agent_id, (label, provider) in AGENT_MODEL_PROVIDERS.items()]
|
|
81
|
+
return {"agents": agents, "providers": [{"value": provider, "label": label,
|
|
82
|
+
"agent_ids": [agent["agent_id"] for agent in agents if agent["provider"] == provider],
|
|
83
|
+
"evidence_supported": any(agent["provider"] == provider and agent["evidence_supported"] for agent in agents)}
|
|
84
|
+
for provider, label in MODEL_PROVIDER_LABELS.items()]}
|
|
85
|
+
|
|
38
86
|
|
|
39
87
|
class EvidenceError(ValueError):
|
|
40
88
|
pass
|
|
@@ -65,17 +113,9 @@ def model_destination(driver_id: str, environment: dict) -> dict:
|
|
|
65
113
|
"copilot": ("github", "https://api.githubcopilot.com"),
|
|
66
114
|
"gemini": ("google", "https://generativelanguage.googleapis.com"),
|
|
67
115
|
}
|
|
68
|
-
|
|
69
|
-
"claude": ("ANTHROPIC_BASE_URL",),
|
|
70
|
-
"mimo": ("ANTHROPIC_BASE_URL",),
|
|
71
|
-
"deepseek": ("DEEPSEEK_BASE_URL", "ANTHROPIC_BASE_URL"),
|
|
72
|
-
"copilot": ("COPILOT_API_URL", "GITHUB_COPILOT_BASE_URL", "GH_HOST"),
|
|
73
|
-
"gemini": ("GOOGLE_GEMINI_BASE_URL", "GEMINI_API_BASE_URL"),
|
|
74
|
-
"kimi": ("KIMI_BASE_URL", "OPENAI_BASE_URL"),
|
|
75
|
-
}
|
|
76
|
-
if driver_id not in explicit_keys:
|
|
116
|
+
if driver_id not in MODEL_ENDPOINT_KEYS:
|
|
77
117
|
raise EvidenceError("aws_evidence_unknown_provider")
|
|
78
|
-
endpoints = [environment[key] for key in
|
|
118
|
+
endpoints = [environment[key] for key in MODEL_ENDPOINT_KEYS[driver_id] if environment.get(key)]
|
|
79
119
|
if len(set(endpoints)) > 1 or (not endpoints and driver_id not in defaults):
|
|
80
120
|
raise EvidenceError("aws_evidence_unknown_provider")
|
|
81
121
|
endpoint = endpoints[0] if endpoints else defaults[driver_id][1]
|
|
@@ -1234,7 +1234,7 @@ except (ImportError, ModuleNotFoundError):
|
|
|
1234
1234
|
# DAEMON_VERSION is the protocol/logic version of the daemon code.
|
|
1235
1235
|
# Kept in sync with pyproject.toml version via bump-version.sh.
|
|
1236
1236
|
# CLIENT_TYPE identifies which packaging/distribution this daemon runs in.
|
|
1237
|
-
DAEMON_VERSION = "1.66.
|
|
1237
|
+
DAEMON_VERSION = "1.66.1"
|
|
1238
1238
|
|
|
1239
1239
|
|
|
1240
1240
|
def _detect_client_type() -> str:
|
|
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
|