forgexa-cli 1.9.2__tar.gz → 1.10.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.9.2 → forgexa_cli-1.10.2}/PKG-INFO +1 -1
- {forgexa_cli-1.9.2 → forgexa_cli-1.10.2}/forgexa_cli/__init__.py +1 -1
- {forgexa_cli-1.9.2 → forgexa_cli-1.10.2}/forgexa_cli/daemon.py +34 -13
- {forgexa_cli-1.9.2 → forgexa_cli-1.10.2}/forgexa_cli.egg-info/PKG-INFO +1 -1
- {forgexa_cli-1.9.2 → forgexa_cli-1.10.2}/pyproject.toml +1 -1
- {forgexa_cli-1.9.2 → forgexa_cli-1.10.2}/README.md +0 -0
- {forgexa_cli-1.9.2 → forgexa_cli-1.10.2}/forgexa_cli/_build_config.py +0 -0
- {forgexa_cli-1.9.2 → forgexa_cli-1.10.2}/forgexa_cli/main.py +0 -0
- {forgexa_cli-1.9.2 → forgexa_cli-1.10.2}/forgexa_cli/py.typed +0 -0
- {forgexa_cli-1.9.2 → forgexa_cli-1.10.2}/forgexa_cli.egg-info/SOURCES.txt +0 -0
- {forgexa_cli-1.9.2 → forgexa_cli-1.10.2}/forgexa_cli.egg-info/dependency_links.txt +0 -0
- {forgexa_cli-1.9.2 → forgexa_cli-1.10.2}/forgexa_cli.egg-info/entry_points.txt +0 -0
- {forgexa_cli-1.9.2 → forgexa_cli-1.10.2}/forgexa_cli.egg-info/requires.txt +0 -0
- {forgexa_cli-1.9.2 → forgexa_cli-1.10.2}/forgexa_cli.egg-info/top_level.txt +0 -0
- {forgexa_cli-1.9.2 → forgexa_cli-1.10.2}/setup.cfg +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""forgexa-cli — Forgexa command-line client."""
|
|
2
|
-
__version__ = "1.
|
|
2
|
+
__version__ = "1.10.2"
|
|
@@ -396,7 +396,7 @@ except (ImportError, ModuleNotFoundError):
|
|
|
396
396
|
# DAEMON_VERSION is the protocol/logic version of the daemon code.
|
|
397
397
|
# Kept in sync with pyproject.toml version via bump-version.sh.
|
|
398
398
|
# CLIENT_TYPE identifies which packaging/distribution this daemon runs in.
|
|
399
|
-
DAEMON_VERSION = "1.
|
|
399
|
+
DAEMON_VERSION = "1.10.2"
|
|
400
400
|
|
|
401
401
|
|
|
402
402
|
def _detect_client_type() -> str:
|
|
@@ -5106,13 +5106,23 @@ class RuntimeDaemon:
|
|
|
5106
5106
|
|
|
5107
5107
|
# Analysis deliverables live in analysis_output_dir (docs/requirements/...)
|
|
5108
5108
|
_input = task.input_data or {}
|
|
5109
|
-
|
|
5110
|
-
|
|
5111
|
-
|
|
5112
|
-
|
|
5113
|
-
|
|
5114
|
-
|
|
5115
|
-
)
|
|
5109
|
+
_top_dir = (_input.get("analysis_output_dir") or "").replace("\\", "/").rstrip("/")
|
|
5110
|
+
_ctx_dir = ((_input.get("context") or {}).get("analysis_output_dir") or "").replace("\\", "/").rstrip("/")
|
|
5111
|
+
# Prefer the deeper (v2) path — context always has the authoritative
|
|
5112
|
+
# req_analysis_dir() value while the top-level field may contain a
|
|
5113
|
+
# stale v1 path (e.g. "docs/requirements/KEY") from nodes created
|
|
5114
|
+
# before the Phase 2 doc-paths migration (2026-06-10).
|
|
5115
|
+
if _ctx_dir and len(_ctx_dir.split("/")) > len(_top_dir.split("/")):
|
|
5116
|
+
doc_dir = _ctx_dir
|
|
5117
|
+
elif _top_dir:
|
|
5118
|
+
doc_dir = _top_dir
|
|
5119
|
+
else:
|
|
5120
|
+
doc_dir = (
|
|
5121
|
+
_ctx_dir
|
|
5122
|
+
or _input.get("output_dir")
|
|
5123
|
+
or (_input.get("context") or {}).get("output_dir")
|
|
5124
|
+
or ""
|
|
5125
|
+
)
|
|
5116
5126
|
if doc_dir:
|
|
5117
5127
|
base = workspace_path / doc_dir
|
|
5118
5128
|
else:
|
|
@@ -5561,11 +5571,22 @@ class RuntimeDaemon:
|
|
|
5561
5571
|
|
|
5562
5572
|
# Build a targeted fix prompt: original task + validation issues.
|
|
5563
5573
|
_input = task.input_data or {}
|
|
5564
|
-
|
|
5565
|
-
|
|
5566
|
-
|
|
5567
|
-
|
|
5568
|
-
|
|
5574
|
+
# For analysis nodes prefer analysis_output_dir (may be v2 while output_dir
|
|
5575
|
+
# is still a stale v1 path in pre-migration nodes).
|
|
5576
|
+
if task.node_type == "analysis":
|
|
5577
|
+
_fix_doc_dir = (
|
|
5578
|
+
_input.get("analysis_output_dir")
|
|
5579
|
+
or (_input.get("context") or {}).get("analysis_output_dir")
|
|
5580
|
+
or _input.get("output_dir")
|
|
5581
|
+
or (_input.get("context") or {}).get("output_dir")
|
|
5582
|
+
or ""
|
|
5583
|
+
)
|
|
5584
|
+
else:
|
|
5585
|
+
_fix_doc_dir = (
|
|
5586
|
+
_input.get("output_dir")
|
|
5587
|
+
or (_input.get("context") or {}).get("output_dir")
|
|
5588
|
+
or ""
|
|
5589
|
+
)
|
|
5569
5590
|
fix_prompt = (
|
|
5570
5591
|
f"{original_prompt}\n\n"
|
|
5571
5592
|
"---\n\n"
|
|
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
|