forgexa-cli 1.82.1__tar.gz → 1.82.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.
Files changed (33) hide show
  1. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/PKG-INFO +1 -1
  2. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli/__init__.py +1 -1
  3. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli/agent_core.py +20 -2
  4. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli/daemon.py +2 -1
  5. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli.egg-info/PKG-INFO +1 -1
  6. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/pyproject.toml +1 -1
  7. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/README.md +0 -0
  8. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli/_build_config.py +0 -0
  9. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli/_local_bind.py +0 -0
  10. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli/autoupgrade.py +0 -0
  11. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli/aws_evidence.py +0 -0
  12. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli/aws_logs_evidence.py +0 -0
  13. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli/main.py +0 -0
  14. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli/observability_contract.py +0 -0
  15. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli/observability_evidence.py +0 -0
  16. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli/py.typed +0 -0
  17. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli/runtime_evidence.py +0 -0
  18. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli/zcode_protocol.py +0 -0
  19. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli.egg-info/SOURCES.txt +0 -0
  20. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli.egg-info/dependency_links.txt +0 -0
  21. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli.egg-info/entry_points.txt +0 -0
  22. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli.egg-info/requires.txt +0 -0
  23. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/forgexa_cli.egg-info/top_level.txt +0 -0
  24. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/setup.cfg +0 -0
  25. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/tests/test_auth_and_runtime_commands.py +0 -0
  26. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/tests/test_autoupgrade.py +0 -0
  27. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/tests/test_check_command.py +0 -0
  28. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/tests/test_expiry_warnings_and_revoke.py +0 -0
  29. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/tests/test_local_bind_commands.py +0 -0
  30. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/tests/test_runtime_credentials.py +0 -0
  31. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/tests/test_session_credentials.py +0 -0
  32. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/tests/test_silent_install.py +0 -0
  33. {forgexa_cli-1.82.1 → forgexa_cli-1.82.2}/tests/test_upgrade_observability.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: forgexa-cli
3
- Version: 1.82.1
3
+ Version: 1.82.2
4
4
  Summary: Forgexa CLI — command-line client and AI agent runtime for the Forgexa platform
5
5
  Author-email: Jason Sun <dev.winds@gmail.com>
6
6
  License-Expression: MIT
@@ -1,2 +1,2 @@
1
1
  """forgexa-cli — Forgexa command-line client."""
2
- __version__ = "1.82.1"
2
+ __version__ = "1.82.2"
@@ -239,6 +239,7 @@ def _assess_implementation_contributions(contract: dict, report: object) -> dict
239
239
  task_types = {task["id"]: task.get("type") for task in contract.get("tasks") or []}
240
240
  verification_ids = [task_id for task_id, task_type in task_types.items() if task_type in ("testing", "verify")]
241
241
  verification_statuses = {row["task_id"]: row["status"] for row in report["task_checks"]}
242
+ pending_verification_ids = [task_id for task_id in verification_ids if verification_statuses.get(task_id) != "covered"]
242
243
  checks = []
243
244
  issues = []
244
245
  pending = []
@@ -267,8 +268,25 @@ def _assess_implementation_contributions(contract: dict, report: object) -> dict
267
268
  "task_id": task_id, "status": row.get("status"),
268
269
  "description": row.get("description") or "Runtime acceptance remains pending",
269
270
  "files": [], "evidence": row.get("evidence") or [],
270
- } for task_id in verification_ids if verification_statuses.get(task_id) != "covered")
271
- result = assess_implementation_audit({**contract, "version": 1}, {**report, "task_checks": checks})
271
+ } for task_id in pending_verification_ids)
272
+ implementation_statuses = {row["task_id"]: row["status"] for row in checks}
273
+ acceptance_checks = []
274
+ for row in report["acceptance_checks"]:
275
+ if (
276
+ pending_verification_ids and row["status"] in ("blocked", "unverified")
277
+ and row.get("plan_revision") is None
278
+ and all(task_types.get(task_id) in ("coding", "fix") and implementation_statuses.get(task_id) == "covered"
279
+ for task_id in row["task_ids"])
280
+ ):
281
+ row = {**row, "task_ids": [*row["task_ids"], *pending_verification_ids]}
282
+ pending.extend({
283
+ "task_id": task_id, "status": row["status"], "description": row["description"],
284
+ "files": row.get("files") or [], "evidence": row["evidence"],
285
+ } for task_id in pending_verification_ids)
286
+ acceptance_checks.append(row)
287
+ result = assess_implementation_audit({**contract, "version": 1}, {
288
+ **report, "task_checks": checks, "acceptance_checks": acceptance_checks,
289
+ })
272
290
  result["report"] = report
273
291
  result["issues"].extend(issues)
274
292
  result["report_valid"] = not result["issues"]
@@ -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.82.1"
1237
+ DAEMON_VERSION = "1.82.2"
1238
1238
 
1239
1239
 
1240
1240
  def _detect_client_type() -> str:
@@ -13474,6 +13474,7 @@ class RuntimeDaemon:
13474
13474
  result.status == "success"
13475
13475
  and task.node_type in ("review", "coding", "testing")
13476
13476
  and not bool((task.input_data or {}).get("verification_work_item"))
13477
+ and not isinstance((task.input_data or {}).get("approved_plan_baseline"), dict)
13477
13478
  ):
13478
13479
  analysis_dir = (
13479
13480
  (task.input_data or {}).get("analysis_output_dir", "")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: forgexa-cli
3
- Version: 1.82.1
3
+ Version: 1.82.2
4
4
  Summary: Forgexa CLI — command-line client and AI agent runtime for the Forgexa platform
5
5
  Author-email: Jason Sun <dev.winds@gmail.com>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "forgexa-cli"
3
- version = "1.82.1"
3
+ version = "1.82.2"
4
4
  description = "Forgexa CLI — command-line client and AI agent runtime for the Forgexa platform"
5
5
  requires-python = ">=3.9"
6
6
  license = "MIT"
File without changes
File without changes