forgexa-cli 1.41.3__tar.gz → 1.41.4__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 (27) hide show
  1. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/PKG-INFO +1 -1
  2. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/forgexa_cli/__init__.py +1 -1
  3. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/forgexa_cli/daemon.py +28 -6
  4. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/forgexa_cli.egg-info/PKG-INFO +1 -1
  5. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/pyproject.toml +1 -1
  6. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/README.md +0 -0
  7. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/forgexa_cli/_build_config.py +0 -0
  8. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/forgexa_cli/_local_bind.py +0 -0
  9. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/forgexa_cli/agent_core.py +0 -0
  10. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/forgexa_cli/autoupgrade.py +0 -0
  11. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/forgexa_cli/main.py +0 -0
  12. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/forgexa_cli/py.typed +0 -0
  13. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/forgexa_cli.egg-info/SOURCES.txt +0 -0
  14. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/forgexa_cli.egg-info/dependency_links.txt +0 -0
  15. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/forgexa_cli.egg-info/entry_points.txt +0 -0
  16. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/forgexa_cli.egg-info/requires.txt +0 -0
  17. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/forgexa_cli.egg-info/top_level.txt +0 -0
  18. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/setup.cfg +0 -0
  19. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/tests/test_auth_and_runtime_commands.py +0 -0
  20. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/tests/test_autoupgrade.py +0 -0
  21. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/tests/test_check_command.py +0 -0
  22. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/tests/test_expiry_warnings_and_revoke.py +0 -0
  23. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/tests/test_local_bind_commands.py +0 -0
  24. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/tests/test_runtime_credentials.py +0 -0
  25. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/tests/test_session_credentials.py +0 -0
  26. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/tests/test_silent_install.py +0 -0
  27. {forgexa_cli-1.41.3 → forgexa_cli-1.41.4}/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.41.3
3
+ Version: 1.41.4
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.41.3"
2
+ __version__ = "1.41.4"
@@ -910,7 +910,7 @@ except (ImportError, ModuleNotFoundError):
910
910
  # DAEMON_VERSION is the protocol/logic version of the daemon code.
911
911
  # Kept in sync with pyproject.toml version via bump-version.sh.
912
912
  # CLIENT_TYPE identifies which packaging/distribution this daemon runs in.
913
- DAEMON_VERSION = "1.41.3"
913
+ DAEMON_VERSION = "1.41.4"
914
914
 
915
915
 
916
916
  def _detect_client_type() -> str:
@@ -1557,7 +1557,12 @@ def _normalize_ai_job_output(
1557
1557
  if not raw_output:
1558
1558
  return "", None
1559
1559
 
1560
- if task_type not in {"qa_scenario_generate_prompt", "test_script_generate"}:
1560
+ if task_type not in {
1561
+ "qa_scenario_generate_prompt",
1562
+ "qa_scenario_preview",
1563
+ "qa_script_preview",
1564
+ "test_script_generate",
1565
+ }:
1561
1566
  return raw_output, None
1562
1567
 
1563
1568
  extracted_output = _daemon_extract_agent_output(agent_id, raw_output)
@@ -5062,7 +5067,11 @@ class ProcessManager:
5062
5067
  timeout,
5063
5068
  task.task_id,
5064
5069
  on_chunk,
5065
- disable_builtin_mcps=task.input_data.get("task_type") == "test_script_generate",
5070
+ disable_builtin_mcps=task.input_data.get("task_type") in {
5071
+ "test_script_generate",
5072
+ "qa_scenario_preview",
5073
+ "qa_script_preview",
5074
+ },
5066
5075
  )
5067
5076
  else:
5068
5077
  result = await self._run_generic(agent, prompt, workspace_path, timeout, task.task_id, on_chunk)
@@ -11024,6 +11033,15 @@ class RuntimeDaemon:
11024
11033
 
11025
11034
  # 2. Prepare workspace (using project info + requirement branch)
11026
11035
  full_prompt = f"{system_prompt}\n\n{user_prompt}" if system_prompt else user_prompt
11036
+ task_timeout = settings.AGENT_TIMEOUT
11037
+ if task_type in {"qa_scenario_preview", "qa_script_preview"}:
11038
+ try:
11039
+ task_timeout = min(
11040
+ max(int(input_ctx.get("timeout_seconds", settings.AGENT_TIMEOUT)), 30),
11041
+ settings.AGENT_TIMEOUT,
11042
+ )
11043
+ except (TypeError, ValueError):
11044
+ pass
11027
11045
  fake_task = TaskInfo(
11028
11046
  task_id=job_id,
11029
11047
  # Reuse a stable workspace key when the server provides one so
@@ -11034,7 +11052,7 @@ class RuntimeDaemon:
11034
11052
  agent_type=agent_type,
11035
11053
  input_prompt=full_prompt,
11036
11054
  input_data={"task_type": task_type},
11037
- timeout_seconds=settings.AGENT_TIMEOUT,
11055
+ timeout_seconds=task_timeout,
11038
11056
  max_retries=0,
11039
11057
  retry_count=0,
11040
11058
  project=project_info,
@@ -11271,7 +11289,11 @@ class RuntimeDaemon:
11271
11289
 
11272
11290
  # 5. Report completion
11273
11291
  # For deliverables: allow up to 200K chars (full document); others: last 20K
11274
- max_content = 200000 if task_type == "deliverable_generate" else 20000
11292
+ max_content = (
11293
+ 200000 if task_type == "deliverable_generate"
11294
+ else 50000 if task_type in {"qa_scenario_preview", "qa_script_preview"}
11295
+ else 20000
11296
+ )
11275
11297
  normalized_output, scenario_items = _normalize_ai_job_output(
11276
11298
  task_type=task_type,
11277
11299
  agent_id=agent.agent_id,
@@ -11283,7 +11305,7 @@ class RuntimeDaemon:
11283
11305
  scenario_ids=input_ctx.get("scenario_ids", []),
11284
11306
  workspace_path=workspace_path,
11285
11307
  )
11286
- if task_type == "qa_scenario_generate_prompt":
11308
+ if task_type in {"qa_scenario_generate_prompt", "qa_scenario_preview", "qa_script_preview"}:
11287
11309
  output_content, scenario_items = _prepare_ai_job_output(
11288
11310
  task_type=task_type,
11289
11311
  agent_id=agent.agent_id,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: forgexa-cli
3
- Version: 1.41.3
3
+ Version: 1.41.4
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.41.3"
3
+ version = "1.41.4"
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