forgexa-cli 1.86.1__tar.gz → 1.86.2__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.86.1 → forgexa_cli-1.86.2}/PKG-INFO +1 -1
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli/__init__.py +1 -1
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli/agent_core.py +3 -1
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli/daemon.py +6 -2
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli.egg-info/PKG-INFO +1 -1
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/pyproject.toml +1 -1
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/README.md +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli/_build_config.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli/_local_bind.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli/autoupgrade.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli/aws_evidence.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli/aws_logs_evidence.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli/main.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli/observability_contract.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli/observability_evidence.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli/py.typed +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli/runtime_evidence.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli/zcode_protocol.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli.egg-info/SOURCES.txt +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli.egg-info/dependency_links.txt +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli.egg-info/entry_points.txt +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli.egg-info/requires.txt +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/forgexa_cli.egg-info/top_level.txt +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/setup.cfg +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/tests/test_auth_and_runtime_commands.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/tests/test_autoupgrade.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/tests/test_check_command.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/tests/test_expiry_warnings_and_revoke.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/tests/test_local_bind_commands.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/tests/test_publish_script.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/tests/test_runtime_credentials.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/tests/test_session_credentials.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/tests/test_silent_install.py +0 -0
- {forgexa_cli-1.86.1 → forgexa_cli-1.86.2}/tests/test_upgrade_observability.py +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""forgexa-cli — Forgexa command-line client."""
|
|
2
|
-
__version__ = "1.86.
|
|
2
|
+
__version__ = "1.86.2"
|
|
@@ -774,9 +774,11 @@ def lock_provenance_projection(path: str, source: str) -> str | None:
|
|
|
774
774
|
}, ensure_ascii=True, sort_keys=True, separators=(",", ":"))
|
|
775
775
|
|
|
776
776
|
|
|
777
|
-
def task_review_policy(node_type: str, task_input: dict, *, changed_files: list[str] | None = None) -> dict:
|
|
777
|
+
def task_review_policy(node_type: str, task_input: dict, *, changed_files: list[str] | None = None, policy_supported: bool = True) -> dict:
|
|
778
778
|
baseline = task_input.get("approved_plan_baseline")
|
|
779
779
|
reasons = []
|
|
780
|
+
if policy_supported is not True:
|
|
781
|
+
reasons.append("runtime_policy_upgrade_required")
|
|
780
782
|
fingerprint = None
|
|
781
783
|
if isinstance(baseline, dict):
|
|
782
784
|
expected = {key: value for key, value in baseline.items() if key != "fingerprint"}
|
|
@@ -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.86.
|
|
1237
|
+
DAEMON_VERSION = "1.86.2"
|
|
1238
1238
|
|
|
1239
1239
|
|
|
1240
1240
|
def _detect_client_type() -> str:
|
|
@@ -10219,6 +10219,8 @@ class ServerConnection:
|
|
|
10219
10219
|
},
|
|
10220
10220
|
"implementation_audit": {"protocol_version": agent_core.IMPLEMENTATION_AUDIT_PROTOCOL_VERSION},
|
|
10221
10221
|
"task_delivery": {"protocol_version": 1},
|
|
10222
|
+
"verification_recovery": {"protocol_version": 1},
|
|
10223
|
+
"task_review_policy": {"protocol_version": 1},
|
|
10222
10224
|
"recording_suggestions": {"protocol_version": 1, "isolated_workspace": True},
|
|
10223
10225
|
"task_attachment_staging": {"protocol_version": 1, "runtime_proxy": True, "image_agents": ["claude"]},
|
|
10224
10226
|
},
|
|
@@ -10645,6 +10647,8 @@ class ServerConnection:
|
|
|
10645
10647
|
},
|
|
10646
10648
|
"implementation_audit": {"protocol_version": agent_core.IMPLEMENTATION_AUDIT_PROTOCOL_VERSION},
|
|
10647
10649
|
"task_delivery": {"protocol_version": 1},
|
|
10650
|
+
"verification_recovery": {"protocol_version": 1},
|
|
10651
|
+
"task_review_policy": {"protocol_version": 1},
|
|
10648
10652
|
"recording_suggestions": {"protocol_version": 1, "isolated_workspace": True},
|
|
10649
10653
|
"local_evidence": {"protocol_version": 1, "structured_summary": True},
|
|
10650
10654
|
"task_attachment_staging": {"protocol_version": 1, "runtime_proxy": True, "image_agents": ["claude"]},
|
|
@@ -13944,7 +13948,7 @@ class RuntimeDaemon:
|
|
|
13944
13948
|
|
|
13945
13949
|
review_policy = agent_core.task_review_policy(task.node_type, task.input_data or {}, changed_files=result.files_changed)
|
|
13946
13950
|
result.metrics["task_review_policy"] = review_policy
|
|
13947
|
-
if result.status == "success" and review_policy["mode"] == "required" and
|
|
13951
|
+
if result.status == "success" and (task.critic_review_required or review_policy["mode"] == "required" and isinstance((task.input_data or {}).get("approved_plan_baseline"), dict)):
|
|
13948
13952
|
await self._collect_task_delivery_git(
|
|
13949
13953
|
task, workspace_path, result, attempt_before_sha=node_before_sha,
|
|
13950
13954
|
)
|
|
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
|